andrewxhill / MOL

The Map of Life
mol.colorado.edu/
19 stars 4 forks source link

GAE Range Map Exists API #3

Closed andrewxhill closed 13 years ago

andrewxhill commented 13 years ago

Simple API that returns metadata about a range map based on Species entity key or a not found code. Will need to include information about where tiles are etc. Based on data from the metadata registration method

andrewxhill commented 13 years ago

We may want a more advanced, TileInfo api that gives info about what tiles exist for an species within a bounding box at some zoom, maybeeee

eightysteele commented 13 years ago

I've started work on this issue. Basically I'm creating a single LayerHandler for GET and PUT requests with the following API. I'm open to any changes so let me know.

To get a layer resource:

GET /layers/species_id HTTP/1.1 Host: mol-lab.appspot.com

To create a new layer resource:

PUT /layers/new_species_id HTTP/1.1 Host: mol-lab.appspot.com

To update an existing layer resource:

PUT /layers/existing_species_id HTTP/1.1 Host: mol-lab.appspot.com

eightysteele commented 13 years ago

@andrewxhill: Are you thinking advanced TileInfo API for prototype or down the line?

eightysteele commented 13 years ago

My latest work on this issue has been pushed and is ready for review. See LayersHandler on line 251 for relevant code: https://github.com/andrewxhill/MOL/blob/modularize/app/mol/api/__init__.py

I added support for listing all layer resources: GET /layers HTTP/1.1

Also the layers app has also been updated to hit the new layers API: https://github.com/andrewxhill/MOL/blob/modularize/layers/layers/lib/mol/service/__init__.py

Changing issue status from 'Status-Started' to 'Status-InReview'.

andrewxhill commented 13 years ago

LayerHandler is looking really good. We should talk a bit about GeoPts, layer type categories, layer format (shp, tile, raster), and tile/layer versioning for some layer types

andrewxhill commented 13 years ago

Ok, so GeoPts are pretty flexible for search methods, so happy there.

We should use TileSetIndex.type = db.Category("Expert")

We should propose a staging of tile edits to the groups, TileSetIndex.status = db.Category("Proposed")

TSI.errors = db.StringListProperty() where strings are JSON "{'kind':str, 'message':str}"

eightysteele commented 13 years ago

Added type and status properties to TileSetIndex. The Layer class in /layers is modified with new type (default 'expert') and status (default 'accepted') properties. All has been pushed:

https://github.com/andrewxhill/MOL/commit/2e58d311dee7cf0bb8e8b89d5db2690fc0f7a08f

andrewxhill commented 13 years ago

great, i think close! we can expand the layer type vocabulary at a later date.

eightysteele commented 13 years ago

+1