VNG-Realisatie/Haal-Centraal-WOZ-bevragen

foutmelding bij niet-numerieke rsin of kvkNummer geeft foutmelding op integer

Closed this issue · 5 comments

Bijvoorbeeld /wozobjecten?kvkNummer=1234567A

Geeft:

    "invalidParams": [
        {
            "code": "integer",
            "reason": "Waarde is geen geldige integer",
            "parameter": "kvkNummer"
        }
    ]

kvkNummer is geen integer, maar een string die alleen cijfers mag bevatten. Ik denk dat het verwarrend kan zijn om dat een integer te noemen. je wil bijvoorbeeld niet dat bij een kvkNummer dat begint met een 0 deze wordt weggelaten.

Een kvkNummer is wel altijd numeriek, en dit is ook een constraint op de parameter. Is er een andere code om hier te gebruiken?
'number' lijkt me ook niet van toepassing, aangezien de omschrijving hier bij 'Waarde is geen geldig decimaal getal.' is, wat ook niet het geval is. Het enige wat ik kan bedenken is een 'pattern' error code, met regex ^[0-9]{16}$

@kad-tromps die zou ik ook het meest logisch vinden. Dus 'pattern'. Het juiste pattern is ^[0-9]{8}$

We hebben vorige week de specificaties hiervoor gewijzigd, waarbij we deze en enkele andere paters hebben toegevoegd. Zie #92

@fsamwel als we een pattern check zoals $[0-9]{8}$ gebruiken, zit hier impliciet een min/max length check in. Zal ik deze foutmeldingen dan weg laten? Of geven jullie de voorkeur aan eerst checken op lengte (en wellicht alles numeriek) en vervolgens een pattern check?

@fsamwel als we een pattern check zoals $[0-9]{8}$ gebruiken, zit hier impliciet een min/max length check in. Zal ik deze foutmeldingen dan weg laten? Of geven jullie de voorkeur aan eerst checken op lengte (en wellicht alles numeriek) en vervolgens een pattern check?

@kad-tromps Zoals ik het lees zegt @MelvLee over een soortgelijke situatie in #49:
Abstract Scenario: invalide wozobject identificatie
Als '/wozobjecten/' wordt aangeroepen
Dan bevat de response de volgende kenmerken

     | naam   | waarde                                                           |
     | title  | Een of meerdere parameters zijn niet correct.                    |
     | status | 400                                                              |
     | detail | Parameter 'identificatie' is geen valide wozobject identificatie |

     En bevat de response de volgende invalidParams

     | name          | reason   |
     | identificatie | <reason> |

     Voorbeelden:
     | identificatie | reason                                  |
     | 1             | waarde is korter dan minimale lengte 12 |
     | 1234567890123 | waarde is langer dan maximale lengte 12 |
     | A1234@567890  | waarde 'A1234@567890' is geen getal     |

Dus heb je dan wel apart de minLength, maxLength en type (getal) validaties. @MelvLee had jij niet ook een keer gezegd dat alleen de pattern check voldoende is? (dan moet de feature worden aangepast)

Klopt. Feature file is aangepast. Zie p.r. #49