Skip to content

camptocamp/pyramid-ogcapi

Repository files navigation

Pyramid OGC API

Tools used to facilitate the development of OGC API services with Pyramid. Provide template the the HTML vies of the API, have a generic one for la kind of view. Automatically create the routes and the views based on the OpenAPI 3 specification file and the OGC API common consideration. Provide some functions to facilitate the create of the template. Provide some functions to facilitate the create of the api. Provide some functions to facilitate the creation od an OpenLayers Map.

OGC API common consideration that we will consider to create some facilitation:

  • The f argument to switch between the HTML and the JSON view.
  • The link definition.
  • The paging definition.

It will also provide an example of the OGC API Feature service with:

Installation

python3 -m pip install pyramid-ogcapi

Getting started

Get the OGC API bundled specifications from the OGC GitHub organization, and save it as ogcapi-bundled.json.

Add in your configuration:

config.include("pyramid_ogcapi")
config.pyramid_openapi3_spec('ogcapi-bundled.json', apiname='ogcapi')
config.pyramid_openapi3_add_explorer(apiname='ogcapi')
config.pyramid_ogcapi_register_routes(apiname='ogcapi')

Integrate with jsonschema_gentypes.

Add the following views:

from pyramid import view_config
from pyramid_ogcapi import request_dict
from .ogcapi import OgcapiCollectionsCollectionidGet, OgcapiCollectionsCollectionidGetResponse

@request_dict
def myview(
  request: pyramid.request.Request,
  request_typed: OgcapiCollectionsCollectionidGet,
) -> OgcapiCollectionsCollectionidGetResponse:
    return {...}

Integrate with jsonschema_gentypes

Start example

Run the example:

make run

Open the Swagger UI.

Open the OpenAPI main page.

Contributing

Install the pre-commit hooks:

pip install pre-commit
pre-commit install --allow-missing-config

The prospector tests should pass.

The code should be typed.

The code should be tested with pytests.