-
Notifications
You must be signed in to change notification settings - Fork 3
pygeoapi integration #22
Description
pygeoapi is a Python server implementation of the OGC API suite of standards.
This issue exists to discuss the best approach to integrating pygeoapi into opencdms-api (and possibly also import parts into pyopencdms).
Approach
pyopencdms takes the same architectural approach as the bottom two layers of pygeoapi. Specifically:
- Where pygeoapi implements different "providers" for different sources of geospatial data (e.g. CSV file, PostGIS database etc.) -
pyopencdmswill implement different "providers" for different Climate Data Management System (CDMS) databases - The
import opencdmsPython package in thepyopencdmsrepository is equivalent to the "Core" of pygeoapi that exposes an "internal API". This is will be an internal Python API that can be used to manage data from all CDMS providers in the same way - in our case, it is useful for the Python API to be a separate library for scientific users who are working directly with data and are not interested in a Web API.
opencdms-api is our web server backend that will use the "internal API" from pyopencdms to provide one of more Web APIs. This is equivalent to the "web" component of pygeoapi (although the majority of our configuration is likely to be in the OpenCDMS Application Database rather than YAML).
(Image from pygeoapi presentation)
Integration
Can pygeoapi be integrated into pyopencdms and opencdms-api?
-
OGC API Web Processing Service (WPS)
- Can we reuse pygeoapi's internal API for processes in
pyopencdms? - Can we reuse pygeoapi's WPS Web API for processes in
opencdms-api?
- Can we reuse pygeoapi's internal API for processes in
-
OGC API Environmental Data Retrieval (EDR)
- Can we extend (or be inspired by) EDR to create a common API for Environmental Data Management (EDM) in
opencdms-api? - Does the deign of the "EDM" Web API impact on our Python internal API in
pyopencdms?
- Can we extend (or be inspired by) EDR to create a common API for Environmental Data Management (EDM) in
-
Using
opencdms-apias a reverse-proxy for pygeoapiopencdms-apihas the capability to mount other Python WSGI applications and expose their APIs unaltered. A possible advantage of this 'pass-through' approach is thatopencdms-apican be used to authenticate users of pygeoapi APIs using credentials in a CDMS.
Can pyopencdms be integrated into pygeoapi?
- Does it make sense to create an
opencdmsprovider for pygeoapi that allows all supported CDMSs to be data providers for pygeoapi?
