Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Issue 389 publish sensor data api documentation (#390)
Start API v3. Implement v3_0 endpoints /sensors [GET], /sensors/data [GET] and refactor an existing dev endpoint to become /sensors/data [POST], using modern authorization and marshmallow schemas. Also update tutorials for getting started and for posting sensor data, as well as the API introduction for v3_0 of the API. * Move sensor data API from dev to v2 and use flask-classful Signed-off-by: F.N. Claessen <felix@seita.nl> * Publish dev API Signed-off-by: F.N. Claessen <felix@seita.nl> * Add quickrefs Signed-off-by: F.N. Claessen <felix@seita.nl> * Add type annotations Signed-off-by: F.N. Claessen <felix@seita.nl> * Refactor use of auth_required in SensorAPI Signed-off-by: F.N. Claessen <felix@seita.nl> * Add type annotations Signed-off-by: F.N. Claessen <felix@seita.nl> * Add more quickrefs Signed-off-by: F.N. Claessen <felix@seita.nl> * Indentation Signed-off-by: F.N. Claessen <felix@seita.nl> * valid JSON, rather than a python dict Signed-off-by: F.N. Claessen <felix@seita.nl> * Move import to its preferred position Signed-off-by: F.N. Claessen <felix@seita.nl> * Rename and add type annotation Signed-off-by: F.N. Claessen <felix@seita.nl> * Allow AssetIdField and SensorIdField to be used for API requests, too, besides for CLI scripts Signed-off-by: F.N. Claessen <felix@seita.nl> * Update tutorial for posting data Signed-off-by: F.N. Claessen <felix@seita.nl> * Implement [GET] sensorData Signed-off-by: F.N. Claessen <felix@seita.nl> * Add example GET request Signed-off-by: F.N. Claessen <felix@seita.nl> * Update docstring for unit conversion Signed-off-by: F.N. Claessen <felix@seita.nl> * Respect the passed horizon and prior fields Signed-off-by: F.N. Claessen <felix@seita.nl> * Convert NaN to null (otherwise invalid JSON) Signed-off-by: F.N. Claessen <felix@seita.nl> * Pass event resolution to enable additional unit conversions Signed-off-by: F.N. Claessen <felix@seita.nl> * Smarter unit conversion for BeliefsSeries Signed-off-by: F.N. Claessen <felix@seita.nl> * Revert to auth_token_required instead of login_required Signed-off-by: F.N. Claessen <felix@seita.nl> * Deserialize to BeliefsDataFrame using post_load decorator, and run through post_load decorators in a specific sequence Signed-off-by: F.N. Claessen <felix@seita.nl> * Move serialization logic to schema Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix tutorial for posting data Signed-off-by: F.N. Claessen <felix@seita.nl> * Introduce util function to check for a valid price unit Signed-off-by: F.N. Claessen <felix@seita.nl> * Comment out tutorial sections on posting data for multiple connections at once Signed-off-by: F.N. Claessen <felix@seita.nl> * Update tutorial for posting data: change connection to sensor and stop mentioning separate endpoints for postMeterData and postPrognosis Signed-off-by: F.N. Claessen <felix@seita.nl> * Add validation based on POST message type Signed-off-by: F.N. Claessen <felix@seita.nl> * Publish documentation for SensorDataAPI Signed-off-by: F.N. Claessen <felix@seita.nl> * Add validation based on GET message type Signed-off-by: F.N. Claessen <felix@seita.nl> * mypy Signed-off-by: F.N. Claessen <felix@seita.nl> * Update getting-started.rst Signed-off-by: F.N. Claessen <felix@seita.nl> * Undoc old endpoints Signed-off-by: F.N. Claessen <felix@seita.nl> * Rename with_appcontext_if_needed Signed-off-by: F.N. Claessen <felix@seita.nl> * refactor auth logic - separate checking access from the permission_required_for_context decorator Signed-off-by: Nicolas Höning <nicolas@seita.nl> * add modern auth for sensor data get & post, remove checking account role auth Signed-off-by: Nicolas Höning <nicolas@seita.nl> * more freedom to create inside accounts: allow all account members to create on generic assets and sensors Signed-off-by: Nicolas Höning <nicolas@seita.nl> * use a user from the same account as the sensor for sensor data tests Signed-off-by: Nicolas Höning <nicolas@seita.nl> * adapt asset tests w.r.t. to a change in dev api conftest Signed-off-by: Nicolas Höning <nicolas@seita.nl> * Remove unneeded import Signed-off-by: F.N. Claessen <felix@seita.nl> * GET endpoints work for logged-in users when tried in the browser with auth_required but not with auth_token_required Signed-off-by: F.N. Claessen <felix@seita.nl> * Add docstring Signed-off-by: F.N. Claessen <felix@seita.nl> * Make type a required field Signed-off-by: F.N. Claessen <felix@seita.nl> * Move @route to top Signed-off-by: F.N. Claessen <felix@seita.nl> * SensorDataDescriptionSchema doesn't need the `type` field Signed-off-by: F.N. Claessen <felix@seita.nl> * Revert "Undoc old endpoints" This reverts commit 852bee8. * Move sensor data API documentation to v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * Move sensor data API to v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * Move user API to class for v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * Move user UI to v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * Update user API tests Signed-off-by: F.N. Claessen <felix@seita.nl> * Move user API tests to v3 module Signed-off-by: F.N. Claessen <felix@seita.nl> * Separate view for user index Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix test Signed-off-by: F.N. Claessen <felix@seita.nl> * Update documentation tutorials to v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * No trailing slash Signed-off-by: F.N. Claessen <felix@seita.nl> * Make `type` field in v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * Add v3 to API index Signed-off-by: F.N. Claessen <felix@seita.nl> * Update introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix comment about where to request auth token Signed-off-by: F.N. Claessen <felix@seita.nl> * flake8 Signed-off-by: F.N. Claessen <felix@seita.nl> * black Signed-off-by: F.N. Claessen <felix@seita.nl> * Revert some documentation changes that are ahead of code changes Signed-off-by: F.N. Claessen <felix@seita.nl> * Use one common base route Signed-off-by: F.N. Claessen <felix@seita.nl> * Prefer plural base route Signed-off-by: F.N. Claessen <felix@seita.nl> * different shade of black Signed-off-by: F.N. Claessen <felix@seita.nl> * typos Signed-off-by: F.N. Claessen <felix@seita.nl> * Transition SensorDataAPI:post to SensorAPI:post_data and SensorDataAPI:get to SensorAPI:get_data Signed-off-by: F.N. Claessen <felix@seita.nl> * Rename module Signed-off-by: F.N. Claessen <felix@seita.nl> * Update documentation for moving from SensorDataAPI:post to SensorAPI:post_data Signed-off-by: F.N. Claessen <felix@seita.nl> * Update introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * API changelog entry Signed-off-by: F.N. Claessen <felix@seita.nl> * Implement /sensors [GET] to replace getConnection Signed-off-by: F.N. Claessen <felix@seita.nl> * Complete docstring Signed-off-by: F.N. Claessen <felix@seita.nl> * Add extra tips to API changelog on how to upgrade from v2 to v3 Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix check for belief timing against message type Signed-off-by: F.N. Claessen <felix@seita.nl> * No need to use implementations folder anymore Signed-off-by: F.N. Claessen <felix@seita.nl> * Contain endpoint logic within SensorAPI class Signed-off-by: F.N. Claessen <felix@seita.nl> * Contain endpoint logic within UserAPI class Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix mock email and type annotations Signed-off-by: F.N. Claessen <felix@seita.nl> * Initialize schemas within SensorAPI and UserAPI class Signed-off-by: F.N. Claessen <felix@seita.nl> * Typos Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix 404 error message Signed-off-by: F.N. Claessen <felix@seita.nl> * Remove unused variable declaration Signed-off-by: F.N. Claessen <felix@seita.nl> * Clarify use of headers in test Signed-off-by: F.N. Claessen <felix@seita.nl> * Concerning patching user ids and user account ids, set dump_only for these fields instead of ignoring them Signed-off-by: F.N. Claessen <felix@seita.nl> * Add test cases for unexpected fields Signed-off-by: F.N. Claessen <felix@seita.nl> * Also move patch endpoint logic into UserAPI class; this one was a bit more tricky, because the 'id' fields was being passed to the function twice somehow; use_kwargs instead of use_args was needed to avoid this Signed-off-by: F.N. Claessen <felix@seita.nl> * Move test utils from dev to v3_0 Signed-off-by: F.N. Claessen <felix@seita.nl> * Finish moving sensor data tests from dev to v3_0 Signed-off-by: F.N. Claessen <felix@seita.nl> * Fix asset tests in dev API by moving back some conftest logic Signed-off-by: F.N. Claessen <felix@seita.nl> * Instantiate schemas outside of endpoint logic to minimize response time Signed-off-by: F.N. Claessen <felix@seita.nl> * Add mentions of http status to docstrings Signed-off-by: F.N. Claessen <felix@seita.nl> * Undocument getService from the API introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * Undocument USEF roles in introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * Use "sensor" instead of "connection" in introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * Undocument group notation in introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * Update API changelog for rewrite of introduction Signed-off-by: F.N. Claessen <felix@seita.nl> * Update API changelog entry date Signed-off-by: F.N. Claessen <felix@seita.nl> Co-authored-by: Nicolas Höning <nicolas@seita.nl>
- Loading branch information