From 3d26674f0b85e603ce3a419b560833c9fe4b9981 Mon Sep 17 00:00:00 2001 From: Chris Wesseling Date: Mon, 15 Jan 2024 16:29:12 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=20Replace=20drf-yasg=20=3D>=20drf-spe?= =?UTF-8?q?ctacular?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../referentielijsten/api/schema.py | 21 +++------ .../api/serializers/extern_register.py | 2 + .../api/serializers/kanaal.py | 2 + .../referentielijsten/api/serializers/land.py | 2 + .../api/serializers/soort_digitaal_adres.py | 2 + .../api/serializers/soort_object.py | 2 + .../api/serializers/soort_objectid.py | 2 + .../referentielijsten/api/serializers/taal.py | 2 + .../components/referentielijsten/api/urls.py | 44 ++++++++++++------- .../api/viewsets/externe_registers.py | 26 +++++++++++ .../referentielijsten/api/viewsets/kanalen.py | 26 +++++++++++ .../referentielijsten/api/viewsets/landen.py | 26 +++++++++++ .../api/viewsets/soorten_digitaal_adres.py | 26 +++++++++++ .../api/viewsets/soorten_object.py | 26 +++++++++++ .../api/viewsets/soorten_objectid.py | 26 +++++++++++ .../referentielijsten/api/viewsets/talen.py | 26 +++++++++++ 16 files changed, 231 insertions(+), 30 deletions(-) diff --git a/src/openklant/components/referentielijsten/api/schema.py b/src/openklant/components/referentielijsten/api/schema.py index 086ae4ba..8b48c323 100644 --- a/src/openklant/components/referentielijsten/api/schema.py +++ b/src/openklant/components/referentielijsten/api/schema.py @@ -1,20 +1,13 @@ from django.conf import settings -from drf_yasg import openapi - description = """ Een API om de referentielijsten in het domein klantinteracties te raadplegen en beheren. """.strip() -info = openapi.Info( - title="Klantinteracties Referentielijsten", - default_version=settings.REFERENTIELIJSTEN_API_VERSION, - description=description, - contact=openapi.Contact( - email="standaarden.ondersteuning@vng.nl", - url="https://vng-realisatie.github.io/klantinteracties/", - ), - license=openapi.License( - name="EUPL 1.2", url="https://opensource.org/licenses/EUPL-1.2" - ), -) +# Spectacular settings overrides +custom_settings = { + "TITLE": "Klantinteracties Referentielijsten", + "VERSION": settings.REFERENTIELIJSTEN_API_VERSION, + "DESCRIPTION": description, + "SCHEMA_PATH_PREFIX_TRIM": True, +} diff --git a/src/openklant/components/referentielijsten/api/serializers/extern_register.py b/src/openklant/components/referentielijsten/api/serializers/extern_register.py index 300ad734..9eb0c3f0 100644 --- a/src/openklant/components/referentielijsten/api/serializers/extern_register.py +++ b/src/openklant/components/referentielijsten/api/serializers/extern_register.py @@ -11,3 +11,5 @@ class Meta: "locatie", "naam", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/serializers/kanaal.py b/src/openklant/components/referentielijsten/api/serializers/kanaal.py index 4bfa7f50..1802d02f 100644 --- a/src/openklant/components/referentielijsten/api/serializers/kanaal.py +++ b/src/openklant/components/referentielijsten/api/serializers/kanaal.py @@ -11,3 +11,5 @@ class Meta: "indicatie_actief", "naam", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/serializers/land.py b/src/openklant/components/referentielijsten/api/serializers/land.py index ce3096b9..3c1ea0d0 100644 --- a/src/openklant/components/referentielijsten/api/serializers/land.py +++ b/src/openklant/components/referentielijsten/api/serializers/land.py @@ -12,3 +12,5 @@ class Meta: "ingangsdatum_land", "einddatum_land", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/serializers/soort_digitaal_adres.py b/src/openklant/components/referentielijsten/api/serializers/soort_digitaal_adres.py index b7f56905..76f55621 100644 --- a/src/openklant/components/referentielijsten/api/serializers/soort_digitaal_adres.py +++ b/src/openklant/components/referentielijsten/api/serializers/soort_digitaal_adres.py @@ -11,3 +11,5 @@ class Meta: "indicatie_actief", "naam", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/serializers/soort_object.py b/src/openklant/components/referentielijsten/api/serializers/soort_object.py index 4583507b..67b085b0 100644 --- a/src/openklant/components/referentielijsten/api/serializers/soort_object.py +++ b/src/openklant/components/referentielijsten/api/serializers/soort_object.py @@ -11,3 +11,5 @@ class Meta: "indicatie_actief", "naam", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/serializers/soort_objectid.py b/src/openklant/components/referentielijsten/api/serializers/soort_objectid.py index 009c2243..f88628cf 100644 --- a/src/openklant/components/referentielijsten/api/serializers/soort_objectid.py +++ b/src/openklant/components/referentielijsten/api/serializers/soort_objectid.py @@ -11,3 +11,5 @@ class Meta: "indicatie_actief", "naam", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/serializers/taal.py b/src/openklant/components/referentielijsten/api/serializers/taal.py index be61f00e..6c69cdb6 100644 --- a/src/openklant/components/referentielijsten/api/serializers/taal.py +++ b/src/openklant/components/referentielijsten/api/serializers/taal.py @@ -11,3 +11,5 @@ class Meta: "indicatie_actief", "naam", ] + + __doc__ = Meta.model.__doc__ diff --git a/src/openklant/components/referentielijsten/api/urls.py b/src/openklant/components/referentielijsten/api/urls.py index 97321713..d4dec9d2 100644 --- a/src/openklant/components/referentielijsten/api/urls.py +++ b/src/openklant/components/referentielijsten/api/urls.py @@ -1,10 +1,14 @@ -from django.conf import settings -from django.urls import include, path, re_path +from django.urls import include, path -from vng_api_common import routers, schema +from drf_spectacular.views import ( + SpectacularAPIView, + SpectacularJSONAPIView, + SpectacularRedocView, +) +from vng_api_common import routers from . import viewsets -from .schema import info +from .schema import custom_settings app_name = "referentielijsten" @@ -18,27 +22,35 @@ router.register("talen", viewsets.TaalViewSet) -class SchemaView(schema.SchemaView): - schema_path = settings.SPEC_URL["referentielijsten"] - info = info - - urlpatterns = [ path( - "v/", + "v0/", include( [ # API documentation - re_path( - r"^schema/openapi(?P\.json|\.yaml)$", - SchemaView.without_ui(cache_timeout=None), - name="schema-json-referentielijsten", - ), path( "schema/", - SchemaView.with_ui("redoc", cache_timeout=None), + SpectacularRedocView.as_view( + url_name=f"{app_name}:schema-yaml-referentielijsten", + ), name="schema-redoc-klantinteracties", ), + path( + "schema/openapi.json", + SpectacularJSONAPIView.as_view( + urlconf="openklant.components.referentielijsten.api.urls", + custom_settings=custom_settings, + ), + name="schema-json-referentielijsten", + ), + path( + "schema/openapi.yaml", + SpectacularAPIView.as_view( + urlconf="openklant.components.referentielijsten.api.urls", + custom_settings=custom_settings, + ), + name="schema-yaml-referentielijsten", + ), path("", include(router.urls)), ] ), diff --git a/src/openklant/components/referentielijsten/api/viewsets/externe_registers.py b/src/openklant/components/referentielijsten/api/viewsets/externe_registers.py index 9180ce2e..c71293d6 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/externe_registers.py +++ b/src/openklant/components/referentielijsten/api/viewsets/externe_registers.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import ExternRegister from ..serializers import ExternRegisterSerializer +@extend_schema( + tags=["Externe registers"], +) +@extend_schema_view( + list=extend_schema( + operation_id="getexterneregisters", + description="De operatie waarmee gegevens van de referentielijst Extern Register kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="postexternregister", + description="De operatie waarmee gegevens van de referentielijst Extern Register kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="getexternregister", + description="De operatie waarmee gegevens van de referentielijst Extern Register kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="putexternregister", + description="De operatie waarmee gegevens van de referentielijst Extern Register kunnen worden gewijzigd.", + ), + destroy=extend_schema( + operation_id="delexternregister", + description="De operatie waarmee gegevens van de referentielijst Extern Register kunnen worden verwijderd.", + ), +) class ExternRegisterViewSet(viewsets.ModelViewSet): __doc__ = ExternRegister.__doc__ lookup_field = "code" diff --git a/src/openklant/components/referentielijsten/api/viewsets/kanalen.py b/src/openklant/components/referentielijsten/api/viewsets/kanalen.py index 6686f5f0..3b813c01 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/kanalen.py +++ b/src/openklant/components/referentielijsten/api/viewsets/kanalen.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import Kanaal from ..serializers import KanaalSerializer +@extend_schema( + tags=["Kanalen"], +) +@extend_schema_view( + list=extend_schema( + operation_id="getkanalen", + description="De operatie waarmee gegevens van de referentielijst Kanalen kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="postkanaal", + description="De operatie waarmee gegevens van de referentielijst Kanalen kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="getkanaal", + description="De operatie waarmee gegevens van de referentielijst Kanalen kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="putkanaal", + description="De operatie waarmee gegevens van de referentielijst Kanalen kunnen worden gewijzigd.", + ), + destroy=extend_schema( + operation_id="delkanaal", + description="De operatie waarmee gegevens van de referentielijst Kanalen kunnen worden verwijderd.", + ), +) class KanaalViewSet(viewsets.ModelViewSet): __doc__ = Kanaal.__doc__ lookup_field = "code" diff --git a/src/openklant/components/referentielijsten/api/viewsets/landen.py b/src/openklant/components/referentielijsten/api/viewsets/landen.py index ed9e4d10..69a986fe 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/landen.py +++ b/src/openklant/components/referentielijsten/api/viewsets/landen.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import Land from ..serializers import LandSerializer +@extend_schema( + tags=["Landen"], +) +@extend_schema_view( + list=extend_schema( + operation_id="getlanden", + description="De operatie waarmee gegevens van de referentielijst Landen kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="postland", + description="De operatie waarmee gegevens van de referentielijst Landen kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="getlanden", + description="De operatie waarmee gegevens van de referentielijst Landen kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="putland", + description="De operatie waarmee gegevens van de referentielijst Landen kunnen worden gewijzigd.", + ), + destroy=extend_schema( + operation_id="delland", + description="De operatie waarmee gegevens van de referentielijst Landen kunnen worden verwijderd.", + ), +) class LandViewSet(viewsets.ModelViewSet): __doc__ = Land.__doc__ lookup_field = "landcode" diff --git a/src/openklant/components/referentielijsten/api/viewsets/soorten_digitaal_adres.py b/src/openklant/components/referentielijsten/api/viewsets/soorten_digitaal_adres.py index 82acedd9..6b0ed862 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/soorten_digitaal_adres.py +++ b/src/openklant/components/referentielijsten/api/viewsets/soorten_digitaal_adres.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import SoortDigitaalAdres from ..serializers import SoortDigitaalAdresSerializer +@extend_schema( + tags=["Soorten digitaal adres"], +) +@extend_schema_view( + list=extend_schema( + operation_id="getsoortendigitaaladres", + description="De operatie waarmee gegevens van de referentielijst Soorten digitaal adres kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="postsoortdigitaaladres", + description="De operatie waarmee gegevens van de referentielijst Soorten digitaal adres kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="getsoortdigitaaladres", + description="De operatie waarmee gegevens van de referentielijst Soorten digitaal adres kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="putsoortdigitaaladres", + description="De operatie waarmee gegevens van de referentielijst Soorten digitaal adres kunnen worden gewijzigd.", + ), + destroy=extend_schema( + operation_id="delsoortdigitaaladres", + description="De operatie waarmee gegevens van de referentielijst Soorten digitaal adres kunnen worden verwijderd.", + ), +) class SoortDigitaalAdresViewSet(viewsets.ModelViewSet): __doc__ = SoortDigitaalAdres.__doc__ lookup_field = "code" diff --git a/src/openklant/components/referentielijsten/api/viewsets/soorten_object.py b/src/openklant/components/referentielijsten/api/viewsets/soorten_object.py index 012d8864..d53d7dc6 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/soorten_object.py +++ b/src/openklant/components/referentielijsten/api/viewsets/soorten_object.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import SoortObject from ..serializers import SoortObjectSerializer +@extend_schema( + tags=["Soorten object"], +) +@extend_schema_view( + list=extend_schema( + operation_id="getsoortenobject", + description="De operatie waarmee gegevens van de referentielijst Soorten object kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="postsoortobject", + description="De operatie waarmee gegevens van de referentielijst Soorten object kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="getsoortobject", + description="De operatie waarmee gegevens van de referentielijst Soorten object kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="putsoortobject", + description="De operatie waarmee gegevens van de referentielijst Soorten object kunnen worden gewijzigd.", + ), + delete=extend_schema( + operation_id="delsoortobject", + description="De operatie waarmee gegevens van de referentielijst Soorten object kunnen worden verwijderd.", + ), +) class SoortObjectViewSet(viewsets.ModelViewSet): __doc__ = SoortObject.__doc__ lookup_field = "code" diff --git a/src/openklant/components/referentielijsten/api/viewsets/soorten_objectid.py b/src/openklant/components/referentielijsten/api/viewsets/soorten_objectid.py index b97a5fb2..b3250836 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/soorten_objectid.py +++ b/src/openklant/components/referentielijsten/api/viewsets/soorten_objectid.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import SoortObjectid from ..serializers import SoortObjectidSerializer +@extend_schema( + tags=["Soorten objectId"], +) +@extend_schema_view( + list=extend_schema( + operation_id="getsoortenobjectid", + description="De operatie waarmee gegevens van de referentielijst Soorten objectId kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="postsoortobjectid", + description="De operatie waarmee gegevens van de referentielijst Soorten objectId kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="getsoortobjectid", + description="De operatie waarmee gegevens van de referentielijst Soorten objectId kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="putsoortobjectid", + description="De operatie waarmee gegevens van de referentielijst Soorten objectId kunnen worden gewijzigd.", + ), + destroy=extend_schema( + operation_id="delsoortobjectid", + description="De operatie waarmee gegevens van de referentielijst Soorten objectId kunnen worden verwijderd.", + ), +) class SoortObjectidViewSet(viewsets.ModelViewSet): __doc__ = SoortObjectid.__doc__ lookup_field = "code" diff --git a/src/openklant/components/referentielijsten/api/viewsets/talen.py b/src/openklant/components/referentielijsten/api/viewsets/talen.py index baaacddb..a1e5aedd 100644 --- a/src/openklant/components/referentielijsten/api/viewsets/talen.py +++ b/src/openklant/components/referentielijsten/api/viewsets/talen.py @@ -1,9 +1,35 @@ +from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import viewsets from ...models import Taal from ..serializers import TaalSerializer +@extend_schema( + tags=["Talen"], +) +@extend_schema_view( + list=extend_schema( + operation_id="gettalen", + description="De operatie waarmee gegevens van de referentielijst Talen kunnen worden gezocht.", + ), + create=extend_schema( + operation_id="posttaal", + description="De operatie waarmee gegevens van de referentielijst Talen kunnen worden geregistreerd.", + ), + retrieve=extend_schema( + operation_id="gettaal", + description="De operatie waarmee gegevens van de referentielijst Talen kunnen worden geselecteerd.", + ), + update=extend_schema( + operation_id="puttaal", + description="De operatie waarmee gegevens van de referentielijst Talen kunnen worden gewijzigd.", + ), + destroy=extend_schema( + operation_id="deltaal", + description="De operatie waarmee gegevens van de referentielijst Talen kunnen worden verwijderd.", + ), +) class TaalViewSet(viewsets.ModelViewSet): __doc__ = Taal.__doc__ lookup_field = "code"