Får statuskode 200 når vi forventer 404
Hei,
Når vi gjorde søk mot https://api.resrobot.se/v2.1/trip endepunktet i hele går og ingen reise var funnet så fikk vi statuskode 200, men med et error response.
For eks:
https://api.resrobot.se/v2.1/trip?format=json&lang=sv&originId=740022082&destId=740000114&date=2024-10-03&time=06:00&products=510&operators=!287,!838,!324&passlist=true&showPassingPoints=true&searchForArrival=false
Ga oss status kode 200 med response body:
{
"serverVersion": "2.45.1",
"dialectVersion": "2.45",
"errorCode": "SVC_NO_RESULT",
"errorText": "no result found (H883).",
"internalErrorCode": "H883",
"internalErrorText": "HAFAS Kernel: No connection found after post filtering",
"internalErrorTextOut": "Det hittades inte någon förbindelse",
"requestId": "default-request-id"
}
Er dette korrekt? Skal det ikke være statuskode 404 siden vi faktisk mottar en error response?
Når vi gjorde søk mot https://api.resrobot.se/v2.1/trip endepunktet i hele går og ingen reise var funnet så fikk vi statuskode 200, men med et error response.
For eks:
https://api.resrobot.se/v2.1/trip?format=json&lang=sv&originId=740022082&destId=740000114&date=2024-10-03&time=06:00&products=510&operators=!287,!838,!324&passlist=true&showPassingPoints=true&searchForArrival=false
Ga oss status kode 200 med response body:
{
"serverVersion": "2.45.1",
"dialectVersion": "2.45",
"errorCode": "SVC_NO_RESULT",
"errorText": "no result found (H883).",
"internalErrorCode": "H883",
"internalErrorText": "HAFAS Kernel: No connection found after post filtering",
"internalErrorTextOut": "Det hittades inte någon förbindelse",
"requestId": "default-request-id"
}
Er dette korrekt? Skal det ikke være statuskode 404 siden vi faktisk mottar en error response?
Följ inlägget
1
följare
Vi dubbelkollar detta med vår leverantör. API:et borde returnera HTTP statuskoder som stämmer överens med innehållet (dvs 4xx vid fel).
Vill man inte förlita sig på de HTTP statuskoder, kan man kolla om errorCode finns med i svaret. ErrorCode finns endast när anropet gick fel, och fel ska vara i json. Det kan alltså räcka med en kontroll om fältet finns om man vill veta om en anrop har gått bra eller inte.
Hälsningar,
Bert
Vi har nu fått återkoppling från vår systemleverantör, de bekräftar detta beteende och förklarar att de gör så för att kunna urskilja fel på infrastrukturnivå från fel på applikationsnivå.
Man måste alltså kontrollera om errorCode finns innan man fortsätter med att tolka svaret.
Hälsningar,
Bert
da skal jeg legge til en sjekk på errorCode. Takk for hjelpen!