opencdms-dev / legacy-opencdms-api

⭐🐍 OpenCDMS server application written in Python (FastAPI) and exposing a web interface for `opencdms-app` and other applications
MIT License
3 stars 3 forks source link

pygeoapi integration #22

Open isedwards opened 2 years ago

isedwards commented 2 years ago

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:

  1. 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
  2. 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).

pygeoapi architecture

(Image from pygeoapi presentation)

Integration

Can pygeoapi be integrated into pyopencdms and opencdms-api?

Can pyopencdms be integrated into pygeoapi?