-
Notifications
You must be signed in to change notification settings - Fork 4
Feedback on the alpha release - Part 1 #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@emiliom, I followed up your feedbacks below on my development:
Since this is under development, I put these updates into my development side. |
Copying this update from @cdesyoun from odm2api issue 27, for reference: @emiliom and @valentinedwv, I updated ODM2 REST API that integrates with odm2api with Emilio's review comments. Test site is http://sis-devel.cloudapp.net/docs/. |
Closing, given the recent reorg/refactor of the repo. |
@cdesyoun, here's a first batch of comments based on my assessment of the ODM2 REST API with my Marchantaria use case data. For reference, here is the IPython notebook demo I created a week ago, that I shared with the ODM2 team.
Organizations and grouping of service requests
Individual requests are either grouped in the
Observations
service type, or un-grouped / stand alone. This makes sense. But some reorganization would be helpful, for consistency with respect to the response type:methods
,sites
, etc) and its associated, supplementary entities./datasets/{datasetUUID}
returns anObservations
-type response, so it should be moved to that service group.Observations/value
is unlike all otherObservations
requests, as it's the only one that returns result values. It's misleading/confusing to have it underObservations
.Restructure
Observations/value
response to be more generic and independent of ResultTypeCurrently the JSON response uses keys that mirror the table values in the RDBMS implementation. eg, for Measurement ResultType, the values will be available in the hierarchy
MeasurementResult.MeasurementResultValues
. This means that if a timeseriesCoverage ResultType is being requested, the object (key) hierarchy will be different, and will probably be like this:TimeSeriesResult.TimeSeriesResultValues
. This makes it much more difficult to access result values independently of ResultType. I strongly suggest that thevalue
request always return the same object names, which are in effect the "class" names (sort of):Results.ResultValues
. The content (keys) of each of those objects will vary depending on the ResultType, but the ResultType should always be in the response, so a user can refer to it to infer which keys to expect for each ResultType.Option for "lean" response
Some requests could really benefit from having an optional (or default) "lean" response, to reduce the size of the response. Specifically:
/datasets/{datasetUUID}
. In addition to dataset information, a lean response could include only ResultUUID and ResultType, forObservations
-related information.Observations\value
. This request returns the entire 'Observationsresponse (Results, Actions, Methods, SamplingFeatures, etc), in addition to the specific "ResultValue" information that's the actual focus of the request. That can get really huge, and is often unnecessary b/c a
value` request will probably be issued after having queried observations and selected a list of target ResultUUID's. The lean response should include only ResultUUID and ResultType, in addition to Result and ResultValues.Miscellaneous
The text was updated successfully, but these errors were encountered: