VNG-Realisatie / gemma-zaken

Samen ontwikkelen van API's voor Zaakgericht werken
https://vng-realisatie.github.io/gemma-zaken/
Other
41 stars 26 forks source link

Zaken API voldoet niet aan API Design Rule 51 #2142

Open HenriKorver opened 1 year ago

HenriKorver commented 1 year ago

Omdat de Zaken API de OAS-specificatie niet op de goede locatie publiceert voldoet deze niet aan de verplichte design rule API-51. Hierdoor voldoet de Zaken API niet aan de Landelijke API Strategie en krijgt de Zaken API geen 100% score op deverloper.overheid.nl. Doordat de OAS niet kan worden gevonden kunnen ook twee andere design rules niet worden gecheckt waardoor de score beperkt blijft tot 4 uit 7.

Dit probleem geldt waarschijnlijk ook voor de andere API's uit de ZGW-familie.

michielverhoef commented 1 year ago

https://zaken-api.vng.cloud/api/v1/schema/openapi.yaml

Dit werkt gewoon, de API specificatie van de Zaken API is op deze manier te bereiken (download in je browser, als je de Redoc wilt zien is https://zaken-api.vng.cloud/api/v1/schema/ voldoende) . Op dezelfde manier is de openapi.yaml op te vragen voor de Documenten API, Catalogi API en Besluiten API.

Volgens mij kan dit issue gesloten worden?

HenriKorver commented 1 year ago

Volgens API-51 moet de openapi.yaml of openapi.json direct achter de base url, dus zonder tussenkomst van de term "schema". Dus zo:

https://zaken-api.vng.cloud/api/v1/openapi.yaml

of zo

https://zaken-api.vng.cloud/api/v1/openapi.json

michielverhoef commented 1 year ago

@joerivrij is dit op te lossen met een instelling oid of moeten hier echt wijzigingen in de code voor gemaakt worden?

joerivrij commented 1 year ago

Dit is een instelling maar die wordt in code gezet. Dat betekent dat dit voor elke API aangepast zou moeten worden.

                # API documentation
                url(
                    r"^schema/openapi(?P<format>\.json|\.yaml)$",
                    SchemaView.without_ui(cache_timeout=settings.SPEC_CACHE_TIMEOUT),
                    name="schema-json",
                ),
                url(
                    r"^schema/$",
                    SchemaView.with_ui(
                        "redoc", cache_timeout=settings.SPEC_CACHE_TIMEOUT
                    ),
                    name="schema-redoc",
                ),