From 5651766aa7f64056911dd3b3aa3ea656b02e60c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Cant=C3=B9?= <niccolo.cantu@nina.no> Date: Fri, 17 Nov 2023 13:12:40 +0100 Subject: [PATCH] implement openapi --- metadata_catalogue/datasets/geoapi/models.py | 6 +++++- metadata_catalogue/datasets/geoapi/views.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/metadata_catalogue/datasets/geoapi/models.py b/metadata_catalogue/datasets/geoapi/models.py index 270e530..115b36b 100644 --- a/metadata_catalogue/datasets/geoapi/models.py +++ b/metadata_catalogue/datasets/geoapi/models.py @@ -2,6 +2,7 @@ from django.apps import apps from django.db import models +from pygeoapi.openapi import get_oas from solo.models import SingletonModel from ..libs.utils import safe_get @@ -24,7 +25,7 @@ def get_config(self, url=""): id: value for id, value in Dataset.objects.select_related("metadata").all().as_geoapi_resource(url) } - return { + conf = { "server": { "mimetype": "application/xml; charset=UTF-8", "encoding": "utf-8", @@ -77,3 +78,6 @@ def get_config(self, url=""): }, "resources": resources, } + + openapi = get_oas(conf) + return conf, openapi diff --git a/metadata_catalogue/datasets/geoapi/views.py b/metadata_catalogue/datasets/geoapi/views.py index e562877..ec1da9e 100644 --- a/metadata_catalogue/datasets/geoapi/views.py +++ b/metadata_catalogue/datasets/geoapi/views.py @@ -453,8 +453,8 @@ def _feed_response(request: HttpRequest, api_definition: str, *args, **kwargs) - """Use pygeoapi api to process the input request""" config = GeoAPIConfig.get_solo() - as_dict = config.get_config(req_to_base(request)) - api_ = API(as_dict, {}) + geoapi_conf, openapi_def = config.get_config(req_to_base(request)) + api_ = API(geoapi_conf, openapi_def) api = getattr(api_, api_definition) return api(request, *args, **kwargs)