Skip to content

Conversation

@sanderke
Copy link
Member

De linter bevatte reeds een regel voor het verschaffen van "problem details". Hier wordt het ook als design rule toegevoegd.

fixes #188

@github-actions
Copy link

@sanderke sanderke requested a review from TimvdLippe July 24, 2025 13:24
Copy link
Contributor

@TimvdLippe TimvdLippe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nlgov:use-problem-schema:
moet ook een verwijzing krijgen naar deze nieuwe regel

@TimvdLippe TimvdLippe added Scope: Klein Kleine wijzigingen met beperkte scope Status: In bewerking Het voorstel is in bewerking bij de beheerorganisatie. Type: Wijziging Inhoudelijke wijziging op een standaard Overleg: TO-API Te agenderen voor het Technisch Overleg API labels Aug 14, 2025
@TimvdLippe
Copy link
Contributor

Besproken om de volgende velden als verplicht voor te stellen:

  1. status
  2. title
  3. detail

Optioneel zijn de velden

  1. type
  2. instance

Er mogen geen andere velden gespecificeerd worden. De linter moet daarom geupdate worden dat het JSON object de verplichte velden bevat, en als er meer velden zijn enkel die optioneel zijn. Elk ander veld moet een error opleveren.

@TimvdLippe TimvdLippe added this to the ADR 2.2 milestone Aug 15, 2025
sanderke added a commit that referenced this pull request Sep 4, 2025
* Cleanup

* Update sections/designRules.md

Co-authored-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>

* Update description of 'code' property in design rules

* Clarify error object requirements in documentation

* Documentation of `code` values

* Update wording for 'code' URI dereferencing

---------

Co-authored-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
@TimvdLippe
Copy link
Contributor

TBD vanuit #275 van @joostfarla :

  • Index vs multi-valued parameters vs collection styles
  • What is required / optional?
  • Can request and response encodings differ? JSON input, but XML output? (hopefully not)
  • Should API's evaluate the full request body, or may it stop after the first violation?

@TimvdLippe
Copy link
Contributor

Met de laatste commit hebben we de linter regels. De statistieken:

Statistics for rule nlgov:use-problem-schema:

Analyzed: 160
Passing: 47
Percentage: 29%
Statistics for rule nlgov:problem-schema-members:

Analyzed: 160
Passing: 157
Percentage: 98%
Statistics for rule nlgov:problem-schema-members-bad-request:

Analyzed: 160
Passing: 66
Percentage: 41%

@TimvdLippe
Copy link
Contributor

En de regel voor het vereisen van 400 bij parameters:

Statistics for rule nlgov:problem-invalid-input:

Analyzed: 160
Passing: 105
Percentage: 65%

@TimvdLippe TimvdLippe added Scope: Groot Grote wijziging met grote impact and removed Scope: Klein Kleine wijzigingen met beperkte scope labels Nov 17, 2025
@TimvdLippe
Copy link
Contributor

Notulen:

  • Voeg regel toe voor het uitvoeren van alle schema checks en alle errors in 1 keer terug geven
  • Headers laten we buiten beschouwing, omdat die meestal in andere 4XX en 5XX errors resulteren
  • Location maken we een String om zo te zorgen dat het zowel JSON pointer als XPath aan kan. Tevens halen we index weg voor query parameter errors, waar die informatie dan in de message moet. Daar moeten we dan een note voor toevoegen
  • Apart hoofdstuk voor Content Negotiation, om zo iets te zeggen hoe application/json en application/problem+json te zetten. Dit vereist meer discussie en is een algemeen concern, dus pakken we apart op

@TimvdLippe
Copy link
Contributor

De "vereis 400 voor invalid input" check heb ik nu gefixt zodat het bij GET requests enkel als er parameters zijn, en voor alle andere endpoints. Hier nog wat extra statistieken:

Alle endpoints behalve GET:

Statistics for rule nlgov:problem-invalid-input:

Analyzed: 160
Passing: 155
Percentage: 96%

Alle endpoints en GET als het parameters heeft:

Statistics for rule nlgov:problem-invalid-input:

Analyzed: 160
Passing: 104
Percentage: 65%

@TimvdLippe
Copy link
Contributor

Deze wijziging is goedgekeurd bij het TO 2025-12-02 voor consultatie bij Kennisplatform API's. Dat houdt in dat we het hoofdstuk "Error handling" als geheel consulteren.

Omdat de slagingspercentages behoorlijk verschillen voor de verschillende regels, is het voorstel om MUST toe te passen voor >80% en RECOMMENDED voor alle anderen. Met uitzondering van de MIME type, waar er verwachte minieme impact is op implementaties van clients. Deze verwachting moet worden getoetst bij Kennisplatform API's.

@TimvdLippe TimvdLippe added Status: Ter goedkeuring Het voorstel is uitgewerkt en wordt ter goedkeuring aangeboden. and removed Status: In bewerking Het voorstel is in bewerking bij de beheerorganisatie. labels Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Overleg: TO-API Te agenderen voor het Technisch Overleg API Scope: Groot Grote wijziging met grote impact Status: Ter goedkeuring Het voorstel is uitgewerkt en wordt ter goedkeuring aangeboden. Type: Wijziging Inhoudelijke wijziging op een standaard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Voeg regel toe voor problem+json responses

4 participants