melsk-r / HC-BRK-bevragen-issues

0 stars 0 forks source link

te lange huisnummertoevoeging veroorzaakt 500 server error #326

Closed melsk-r closed 3 months ago

melsk-r commented 3 months ago

Originally created by fsamwel (https://github.com/VNG-Realisatie/Haal-Centraal-BRK-bevragen/issues/495):

https://api.test.kadaster.nl/esd/gemeenten/brk/kadastraalonroerendezaken?adres__postcode=7441JC&adres__huisnummer=1&adres__huisnummertoevoeging=1a3D5

dit resulteert in: { "type" : "https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?#System_Net_HttpStatusCode_InternalServerError", "title" : "Internal Server Error", "status" : 500, "detail" : "Internal Server Error", "instance" : "https://api.test.kadaster.nl/esd/gemeenten/brk/kadastraalonroerendezaken?adres__postcode=7441JC&adres__huisnummer=1&adres__huisnummertoevoeging=1a3D5", "code" : "Internal Server Error" }

melsk-r commented 3 months ago

This comment originally might have been created by someone else.

Onderliggende Kadaster systeem voor opvragen adressen heeft een lengte limiet van 4 voor huisnummertoevoeging:

Value '1a3D5' with length = '5' is not facet-valid with respect to maxLength '4'

Ik zal het verwerken van deze validatiefoutmelding verbeteren, echter een gebruiker van HaalCentraal kan dan nog steeds een huisnummertoevoeging opvragen die eigenlijk te lang is.

Er zit een regex pattern op dit veld:

pattern: ^([a-z,A-Z,0-9])+$

Volgens mij kunnen we deze het beste veranderen in de OpenApi spec naar een limiet van 4 tekens:

pattern: ^([a-z,A-Z,0-9]){1,4}$

Na aanpassing (lokaal) krijg ik direct van HaalCentraal een foutmelding:

{
    "type": "https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?#System_Net_HttpStatusCode_BadRequest",
    "title": "Request is niet valide",
    "status": 400,
    "detail": "The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modification.",
    "instance": "https://api.test.kadaster.nl/esd/gemeenten/brk/kadastraalonroerendezaken?adres__postcode=7441JC&adres__huisnummer=1&adres__huisnummertoevoeging=1a3D5",
    "code": "Bad Request",
    "invalidParams": [
        {
            "name": "adres__huisnummertoevoeging",
            "code": "pattern",
            "reason": "Waarde voldoet niet aan patroon ^([a-z,A-Z,0-9]){1,4}$."
        }
    ]
}

Ik heb het even nagekeken, dit is het enige pattern in de OpenApi spec welke een 'oneindige' lengte heeft volgens de regex. Alle andere hebben een maximale lengte.

@mhebbink-kad mee eens dat het pattern aangepast dient te worden?

melsk-r commented 3 months ago

This comment originally might have been created by someone else.

@rhengeveld: zit in update van de specs. Zie https://github.com/VNG-Realisatie/Haal-Centraal-BRK-bevragen/pull/481

melsk-r commented 3 months ago

This comment originally might have been created by someone else.

Ah, heel mooi 👍

melsk-r commented 3 months ago

This comment originally might have been created by someone else.

Een zgn. Validation error vanuit een achterliggend systeem wordt nu vertaald naar Bad Request:

{
    "type": "https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?#System_Net_HttpStatusCode_BadRequest",
    "title": "Request is niet valide",
    "status": 400,
    "detail": "The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modification.",
    "instance": "https://api.test.kadaster.nl/esd/gemeenten/brk/kadastraalonroerendezaken?adres__postcode=7441JC&adres__huisnummer=1&adres__huisnummertoevoeging=1a3D5",
    "code": "Bad Request"
}

Heb tevens op het merge request vooruitgelopen door het pattern ^([a-z,A-Z,0-9]){1,4}$ alvast toe te passen. Originele request krijgt nu deze foutmelding:

{
    "type": "https://docs.microsoft.com/en-us/dotnet/api/system.net.httpstatuscode?#System_Net_HttpStatusCode_BadRequest",
    "title": "Request is niet valide",
    "status": 400,
    "detail": "The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modification.",
    "instance": "https://api.test.kadaster.nl/esd/gemeenten/brk/kadastraalonroerendezaken?adres__postcode=7441JC&adres__huisnummer=1&adres__huisnummertoevoeging=1a3D5",
    "code": "Bad Request",
    "invalidParams": [
        {
            "name": "adres__huisnummertoevoeging",
            "code": "pattern",
            "reason": "Waarde voldoet niet aan patroon ^([a-z,A-Z,0-9]){1,4}$."
        }
    ]
}

Komt mee met de volgende oplevering.