Ändrat beteende för API-endpoints vid tomma listor #61800

Magnus BrattAPI, Release notes

Bakgrund

Tidigare returnerade vissa endpoints i Mira CRM API HTTP 404 (Not Found) när en fråga inte resulterade i några träffar. Detta kunde ge intrycket att själva endpointen saknades, snarare än att listan var tom.

Förändring

Från och med nu, när en endpoint efterfrågas korrekt, men listan inte innehåller några poster, returneras nu HTTP 200 (OK) med en tom array []. Detta gäller bl.a.:

  • /api/v1/people?queryid=…
  • /api/v1/person-lists/PendingContactInformationUpdates/people/

När en query inte finns eller inte är publicerad (via query-id eller codekey/slug) returneras fortfarande HTTP 404 (Not Found).

Exempel

Tidigare (tom lista):

GET /api/v1/people?queryid=1272
→ HTTP 404 Not Found

Nu (tom lista):

GET /api/v1/people?queryid=1272
→ HTTP 200 OK
[]

När query saknas/inte är publicerad:

GET /api/v1/people?queryid=9999
→ HTTP 404 Not Found

Fördelar

  • Tydligare semantik: 404 används nu enbart när en query inte existerar eller inte är tillgänglig.
  • Enklare klienthantering: Klienter behöver bara särskilja på “ingen data” ([]) och “ogiltig query” (404).
  • Mer i linje med REST-principer där 200 indikerar ett lyckat anrop, även om listan är tom.

Påverkan

  • Klienter som tidigare förväntade sig 404 för tomma listor bör uppdateras till att hantera tomma arrays ([]).
  • Inga andra ändringar i API-strukturen eller datamodellen är gjorda.