-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
REST-API Design Rules 1.0, compliance, API-51 #396
Comments
@joostfarla @jasperroes Ik denk dat dit een interessant punt is om te bespreken in het kader van beheer |
In design rule API-51 wordt de aanbeveling uit de OpenAPI Specification gevolgd, namelijk:
Ten behoeve van interoperabiliteit vereisen we daarbij minimaal het JSON formaat. De MicroProfile specificatie is een platform/framework-specifieke standaard, die een afwijkende keuze heeft gemaakt. Hoewel het conform de HTTP specificatie zuiverder zou zijn om altijd content negotiation toe te passen, zie je dat dit in de praktijk voornamelijk wordt toegepast voor dynamische operaties. Bij statische assets (zoals afbeeldingen, PDFs en tekstbestanden) wordt over het algemeen geen content negotiation toegepast. Daar komt een aanvullende uitdaging bij, namelijk dat er voor OpenAPI documenten, maar ook voor YAML, geen officieel media type is geregistreerd bij IANA. Binnen de OpenAPI community leeft al sinds 2014 een discussie of er een dergelijke media type zou moeten komen of niet. Voor YAML worden verschillende media types, zoals Concluderend lijkt het me verstandig om de bestaande design rule in stand te houden. Om toch te kunnen voldoen aan deze design rule zou je 1 van de volgende suggesties kunnen proberen:
|
Met de toelichting van Joost is vanuit de werkgroep normatieve rules besloten dit issue te sluiten en geen aanpassing te doen in de normatieve rule API-51. |
Probleem:
Wij maken REST API's tbv de Basis Registratie Ondergrond (BRO). Echter we lopen tegen een probleem in "REST-API Design Rules 1.0" aan. Zie ook: hier.
Standaard levert onze software een yaml bestand uit. Dit is conform de micro-profile specificatie.
Bechrijving:
De uitgifte wordt gecontroleerd door een
Accept
header mee te sturen in het verzoek. Als deze niet wordt meegestuurd dan is het standaard formaat YAML, zie hoofdstuk 5.2 in de micro-profile specificatie:The default format of the /openapi endpoint is YAML. Vendors must also support the JSON format if the request contains an Accept header with a value of application/json, in which case the response must contain a Content-Type header with a value of application/json.
Oplossing:
Het zou mooi zijn als de "REST-API Design Rules 1.0" hierin de microprofile standaard gaat volgen. Deze wordt veelvuldig toegepast in de Java wereld. Dus: maak de
Accept
header sturend voor het resultaat wat wordt geretourneerd en leg geen "default" op.The text was updated successfully, but these errors were encountered: