Als u een RESTful API bouwt en een gebruiker een idvan een bron geeft die niet bestaat, moet u 404 Not Found
of 400 Bad Request
.
Bijvoorbeeld:
https://api.domain.com/v1/resource/foobar
Waar foobarniet bestaat.
Antwoord 1, autoriteit 100%
Ik zou 404 retourneren in het geval dat de bron niet bestaat (wat betekent dat het URL-pad verkeerd is) en ik zal 400 alleen retourneren als de rest aanroep wordt gedaan met bijvoorbeeld ongeldige gegevens (@PathParam)
https://api.domain.com/v1/profile/test@email: hier probeer ik om profiel van e-mail-ID te krijgen, maar de e-mail zelf is verkeerd, dus ik zal 400 retourneren.
https://api.domain.com/v1/profile1111/[email protected]zal retourneer 404 omdat het URL-pad ongeldig is.
Antwoord 2, autoriteit 48%
Moet 404 zijn ( niet gevonden ). 400 wordt gebruikt als u niet aan het verzoek kunt voldoen vanwege een slechte syntaxis, maar in uw geval is de syntaxis correct, maar er is geen resource foobar.
U kunt 400 gebruiken als de gebruiker een niet-bestaande API gebruikt, zoals hieronder:
https://api.domain.com/v1/nonexistAPI/xyz/xyz
Je kunt ook deze REST API Design Blograadplegen, die je vertelt hoe je je REST ontwerpt foutcodes.
Antwoord 3, autoriteit 36%
404 Not Found
is het juiste antwoord denk ik, 400
gaat meer over de hoofdtekst van de verzoeken en niet over de resource-ID, dus je kunt die bijvoorbeeld verzenden door validatiefouten.
Antwoord 4, autoriteit 20%
Is het een geldig verzoek? Kan de id van de bron bestaan? Is het geformatteerd als een juiste id? Is het syntactisch correct? etc.. Zo ja, dan kunt u 404 Not Found
gebruiken. Anders is 400 Bad Request
geschikter.
Antwoord 5, autoriteit 16%
Volgens de RFC (https://www.rfc-editor. org/rfc/rfc2616#section-10.4)
de API zou 404 moeten retourneren wanneer
“De server heeft niets gevonden dat overeenkomt met de Request-URI”,
wat is jouw voorbeeld.
400 zou zijn wanneer de bron wordt gevonden, maar het verzoek zelf is onjuist opgemaakt.
Bijvoorbeeld:
I.
https://api.domain.com/v1/resource/foobar
waar foobar NIET bestaat, moet 404 retourneren
ii.
https://api.domain.com/v1/resource/foobar
waar foobar WEL bestaat, maar het verzoek is verkeerd ({age:"NOTANINTEGER"}
, bijvoorbeeld een string
in plaats van een int
), het zou 400 moeten teruggeven.
Ik hoop dat ik kan helpen.
Antwoord 6, autoriteit 9%
404
zou een meer gangbare praktijk zijn. Het is voor Resource Not Found
. In uw geval wordt de betreffende URL niet gevonden.
400
wordt over het algemeen gebruikt voor Bad Request
. Je kunt deze gebruiken voor elk slecht verzoek. Voor bijv. MissingRequiredQueryParameter
, InvalidInput
.