-
-
Notifications
You must be signed in to change notification settings - Fork 251
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
implement OGC EDR API #658
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kalxas
approved these changes
Mar 15, 2021
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 16, 2021
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 16, 2021
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 16, 2021
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 16, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 17, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 18, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Mar 18, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Apr 7, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Apr 8, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
GeoSander
added a commit
to GeoSander/pygeoapi
that referenced
this pull request
Jun 8, 2021
* Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests
tomkralidis
added a commit
that referenced
this pull request
Jun 8, 2021
* Created localization (l10n) module + tests. Added l10n support to API and plugins (wip). * Big refactor: * All routed API methods are now decorated by @pre_process (consistency) and no longer have a headers+format argument but a request argument (**kwargs also removed) * The pre_process decorator turns an incoming Flask/Starlette request into a generic APIRequest instance * The new APIRequest class extracts all relevant info (params, data, locale, etc.) from the request and exposes them as properties * Removed a lot of boilerplate (i.e. format checking) and wrapped that into methods * Updated server-specific API calls in each route method (pass entire request object, not headers and query params) * Several improvements and fixes: * Updated OpenAPI page with "l" query param * Added example translations (metadata) * Changed plugin signature: added explicit locale attribute (instead of **kwargs) * Moved locale processing to get_plugin_locale() function in l10n module * API should pass raw requested locale to plugins, locale should always be set * Fixed API tests and added APIRequest tests * Prepared utils.py for Jinja2 i18n extension * Rebased on commit b40297a and fixed compatibility with #661 and #662 * Updated documentation for language support * Rebased and fixed compatibility with PR #658: * Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests * Translate entire config in render_j2_template for requested locale: * Added new translate_dict function to l10n module (+ tests) * Updated all render_j2_template calls with locale parameter * Updated pygeoapi-test-config.yml with some language structs * Minor improvements * support both 'language' and 'languages' property in server config and provider definitions * renamed and modified translate_dict() to more generic translate_struct() function (l10n module) * remove Content-Language header from provider responses if provider has no language support and format is json(ld) * updated tests * Leave provider locale handling to API * Moved code to determine locale from providers to API class (and remove for formatters and processes) * Removed locale parameter from plugin __init__ signatures * Removed locale parameter from load_plugin() * Added **kwargs to provider implementations for get, query, get_metadata, get_coverage_domainset and get_coverage_rangetype method signatures * Added language=<locale> to all API calls to provider get, query, get_metadata, get_coverage_domainset and get_coverage_rangetype methods * Use 'lang' instead of 'l' as language query parameter * Updated Open API * Updated documentation * Fixed tests * Implemented requested PR changes: * Added usage examples to the APIRequest docstring * Removed language support from coverage functions * Updated plugins.rst and language.rst to match new behavior * Removed language struct from resource links in pygeoapi-config.yml * Rebased on latest master (fixed test_api.py) * Rebased and applied fixes: * Data property in APIRequest now is an awaitable attribute (fixed for Starlette compatibility) * Named references to 'l' parameter to 'lang' * Final changes/improvements: * Make sure that Content-Language is always set; * Added more tests to ensure that the default language returned is the first configured language (if no language was requested by the user); * Updated docs; * Replaced re-occuring strings with constants in api.py; * Fixed Flake8 checks. * add missing async to starlette routes (#704) Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
francbartoli
pushed a commit
to francbartoli/pygeoapi
that referenced
this pull request
Jul 8, 2021
* implement OGC EDR API * add docs/tests * fix tests
francbartoli
pushed a commit
to francbartoli/pygeoapi
that referenced
this pull request
Jul 8, 2021
* Created localization (l10n) module + tests. Added l10n support to API and plugins (wip). * Big refactor: * All routed API methods are now decorated by @pre_process (consistency) and no longer have a headers+format argument but a request argument (**kwargs also removed) * The pre_process decorator turns an incoming Flask/Starlette request into a generic APIRequest instance * The new APIRequest class extracts all relevant info (params, data, locale, etc.) from the request and exposes them as properties * Removed a lot of boilerplate (i.e. format checking) and wrapped that into methods * Updated server-specific API calls in each route method (pass entire request object, not headers and query params) * Several improvements and fixes: * Updated OpenAPI page with "l" query param * Added example translations (metadata) * Changed plugin signature: added explicit locale attribute (instead of **kwargs) * Moved locale processing to get_plugin_locale() function in l10n module * API should pass raw requested locale to plugins, locale should always be set * Fixed API tests and added APIRequest tests * Prepared utils.py for Jinja2 i18n extension * Rebased on commit b40297a and fixed compatibility with geopython#661 and geopython#662 * Updated documentation for language support * Rebased and fixed compatibility with PR geopython#658: * Fixed EDR provider signature (added locale) * Fixed EDR API routes and query function (and improved parameter-name handling) * Fixed EDR tests * Translate entire config in render_j2_template for requested locale: * Added new translate_dict function to l10n module (+ tests) * Updated all render_j2_template calls with locale parameter * Updated pygeoapi-test-config.yml with some language structs * Minor improvements * support both 'language' and 'languages' property in server config and provider definitions * renamed and modified translate_dict() to more generic translate_struct() function (l10n module) * remove Content-Language header from provider responses if provider has no language support and format is json(ld) * updated tests * Leave provider locale handling to API * Moved code to determine locale from providers to API class (and remove for formatters and processes) * Removed locale parameter from plugin __init__ signatures * Removed locale parameter from load_plugin() * Added **kwargs to provider implementations for get, query, get_metadata, get_coverage_domainset and get_coverage_rangetype method signatures * Added language=<locale> to all API calls to provider get, query, get_metadata, get_coverage_domainset and get_coverage_rangetype methods * Use 'lang' instead of 'l' as language query parameter * Updated Open API * Updated documentation * Fixed tests * Implemented requested PR changes: * Added usage examples to the APIRequest docstring * Removed language support from coverage functions * Updated plugins.rst and language.rst to match new behavior * Removed language struct from resource links in pygeoapi-config.yml * Rebased on latest master (fixed test_api.py) * Rebased and applied fixes: * Data property in APIRequest now is an awaitable attribute (fixed for Starlette compatibility) * Named references to 'l' parameter to 'lang' * Final changes/improvements: * Make sure that Content-Language is always set; * Added more tests to ensure that the default language returned is the first configured language (if no language was requested by the user); * Updated docs; * Replaced re-occuring strings with constants in api.py; * Fixed Flake8 checks. * add missing async to starlette routes (geopython#704) Co-authored-by: Tom Kralidis <tomkralidis@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for the OGC Environmental Retrieval API with a baseline provider based on xarray. EDR API is a convenience API with defined query patterns against spatio-temporal data, without having to have deep knowledge against the underlying resource model (data cube, stations/observations, etc.)