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.) - pyopencdms will implement different "providers" for different Climate Data Management System (CDMS) databases
The import opencdms Python package in the pyopencdms repository 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).
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?
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?
Using opencdms-api as a reverse-proxy for pygeoapi
opencdms-api has the capability to mount other Python WSGI applications and expose their APIs unaltered. A possible advantage of this 'pass-through' approach is that opencdms-api can 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 opencdms provider for pygeoapi that allows all supported CDMSs to be data providers for pygeoapi?
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 intopyopencdms
).Approach
pyopencdms
takes the same architectural approach as the bottom two layers of pygeoapi. Specifically:pyopencdms
will implement different "providers" for different Climate Data Management System (CDMS) databasesimport opencdms
Python package in thepyopencdms
repository 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" frompyopencdms
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).Integration
Can pygeoapi be integrated into
pyopencdms
andopencdms-api
?OGC API Web Processing Service (WPS)
pyopencdms
?opencdms-api
?OGC API Environmental Data Retrieval (EDR)
opencdms-api
?pyopencdms
?Using
opencdms-api
as a reverse-proxy for pygeoapiopencdms-api
has the capability to mount other Python WSGI applications and expose their APIs unaltered. A possible advantage of this 'pass-through' approach is thatopencdms-api
can be used to authenticate users of pygeoapi APIs using credentials in a CDMS.Can
pyopencdms
be integrated into pygeoapi?opencdms
provider for pygeoapi that allows all supported CDMSs to be data providers for pygeoapi?