Skip to content

Commit

Permalink
♻ Replace drf-yasg => drf-spectacular
Browse files Browse the repository at this point in the history
  • Loading branch information
CharString committed Jan 15, 2024
1 parent c8cf68a commit 3d26674
Show file tree
Hide file tree
Showing 16 changed files with 231 additions and 30 deletions.
21 changes: 7 additions & 14 deletions src/openklant/components/referentielijsten/api/schema.py
Original file line number Diff line number Diff line change
@@ -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="[email protected]",
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,
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ class Meta:
"locatie",
"naam",
]

__doc__ = Meta.model.__doc__
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ class Meta:
"indicatie_actief",
"naam",
]

__doc__ = Meta.model.__doc__
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ class Meta:
"ingangsdatum_land",
"einddatum_land",
]

__doc__ = Meta.model.__doc__
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ class Meta:
"indicatie_actief",
"naam",
]

__doc__ = Meta.model.__doc__
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ class Meta:
"indicatie_actief",
"naam",
]

__doc__ = Meta.model.__doc__
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ class Meta:
"indicatie_actief",
"naam",
]

__doc__ = Meta.model.__doc__
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ class Meta:
"indicatie_actief",
"naam",
]

__doc__ = Meta.model.__doc__
44 changes: 28 additions & 16 deletions src/openklant/components/referentielijsten/api/urls.py
Original file line number Diff line number Diff line change
@@ -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"

Expand All @@ -18,27 +22,35 @@
router.register("talen", viewsets.TaalViewSet)


class SchemaView(schema.SchemaView):
schema_path = settings.SPEC_URL["referentielijsten"]
info = info


urlpatterns = [
path(
"v<version>/",
"v0/",
include(
[
# API documentation
re_path(
r"^schema/openapi(?P<format>\.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)),
]
),
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
26 changes: 26 additions & 0 deletions src/openklant/components/referentielijsten/api/viewsets/kanalen.py
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
26 changes: 26 additions & 0 deletions src/openklant/components/referentielijsten/api/viewsets/landen.py
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
26 changes: 26 additions & 0 deletions src/openklant/components/referentielijsten/api/viewsets/talen.py
Original file line number Diff line number Diff line change
@@ -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"
Expand Down

0 comments on commit 3d26674

Please sign in to comment.