Synkrone valideringsfeil
Synkrone (via HTTP) valideringsfeil oppgis som svar med statuskode 400 på innsendelse mot API-et. Årsaken til valideringsfeilen returneres som innhold (body) i svaret. Når man får synkrone valideringsfeil blir innsendingen avvist umiddelbart og ikke behandlet videre før feilen(e) er rettet og det sendes inn på nytt. Dersom det ikke er noen synkrone valideringsfeil, vil svaret ha statuskode 202 og inneholde et felt "requestId" som benyttes for så å se om det avdekkes asynkrone valideringsfeil under videre behandling.
Innholdsformat på synkrone valideringsfeil
Valideringsfeilene returneres som en eller flere objekter i en liste "validationErrors". Innholdet i listen er et eller flere objekter som peker på hvilke felter som forårsaket valideringsfeilen angitt i feltet "field", og årsaken til feilen angitt i feltet "error".
{ "validationErrors": [ { "field": "${fieldWithErrorOne}", "error": "${validationErrorCauseOne}" }, { "field": "${fieldWithErrorTwo}", "error": "${validationErrorCauseTwo}" } ] }
Manglende eller blanke ("") påkrevde felt
Svar
{ "validationErrors": [ { "field": "${fieldname}", "error": "must not be null" }, { "field": "${fieldname}", "error": "must not be blank" } ] }
Årsak
Felter som er påkrevd mangler eller har tomme verdier. Felter som ikke kan ha tomme verdier vil gi "must not be blank" enten de mangler eller er tomme. Alle andre påkrevde felter vil gi "must not be null" om de mangler.
Rettelse
Feltet må være med ("must not be null") eller må være med og ha en verdi ("must not be blank").
Feil format på dato/tid
Svar
{ "validationErrors": [ { "field": "${fieldname}", "error": "invalid ISO-8601 instant in UTC (yyyy-MM-ddTHH:mm:ssZ)" } ] }
Årsak
Dato og tidspunkt felter har feil format. De må følge ISO-8601 standarden. Det vil si være i formatet: yyyy-MM-ddTHH:mm:ssZ
Rettelse
Endre formatet til å følge ISO-8601 standarden i formatet yyyy-MM-ddTHH:mm:ssZ.
Feil feltstørrelse – tall
Svar
{ "validationErrors": [ { "field": "${fieldname}", "error": "numeric value out of bounds (<${maxInteger} digits>. <${maxDecimalNumber} digits> expected)" } ] }
Årsak
Man har angitt et tall som overskrider maksimalt antall siffer før elleretter desimalskille ("."). Der det er kun heltall som er tillat vil tallet etter desimalskille (".", det vil si maxDecimalNumber) være 0.
Rettelse
Endre tallet til å være et siffer innenfor maksimalt heltall (maxInteger-verdien) og maksimalt antall desimalsiffer (maxDecimalNumber-verdien).
Feil feltstørrelse – streng (tekst)
Svar
{ "validationErrors": [ { "field": "${fieldname}", "error": "size must be between ${minLength} and ${maxLength}" } ] }
Årsak
Innholdet i feltet har overskredet maksimalt antall tegn eller har færre enn minimum antall tegn.
Rettelse
Endre innholdet til å være innenfor minimum og maksimum størrelse.
Minst ett av feltene må være oppgitt
Svar
{ "validationErrors": [ { "field": "${fieldname}", "error": "At least one of the following fields should be non null: [${fieldOne}, ${fieldTwo}]" } ] }
Årsak
I noen tilfeller må minst et av flere felter være oppgitt. Objektet angitt (fieldname), må minst inneholde verdi i minst ett av de angitte feltene.
Rettelse
Påse at minst ett av de oppgitte feltene er oppgitt og har gyldig verdi på objektet.
Må ha en av angitte verdier
Svar
{ "validationErrors": [ { "field": "${fieldname}", "error": "Must be one of [${valueOne}, ${valueTwo}]" } ] }
Årsak
Feltet (fieldname) må ha verdi og kan kun ha en av de angitte verdiene.
Rettelse
Send inn feltet med en av de angitte verdiene.