Onbekend veld
type | https://docs.frem.sh/reference/api/errors/unknown-field |
| HTTP-status | 400 Bad Request |
Wat het betekent
De body van het verzoek bevatte een veld dat het endpoint niet kent, dus het verzoek is geweigerd in plaats van dat het veld werd genegeerd.
Endpoints die gedeeltelijke updates accepteren, behandelen een ontbrekend veld als ’laat dit ongemoeid’. Een veldnaam die ze niet kennen, is niet te onderscheiden van een ontbrekend veld, dus als ze hem stilletjes negeerden, zouden ze 200 teruggeven voor een wijziging die nooit is gebeurd. Daarom weigeren deze endpoints in plaats daarvan het hele verzoek.
Voorbeelden van detail-berichten die met deze fout worden teruggegeven:
- Unrecognised field(s): “securityAutomerge” (did you mean “security_automerge”?). Accepted fields are: enabled, automerge_patch, automerge_minor, major_approval, security_automerge, schedule, pr_hourly_limit, pr_concurrent_limit.
- Unrecognised field(s): “automerge_everything”. Accepted fields are: enabled, automerge_patch, automerge_minor, major_approval, security_automerge, schedule, pr_hourly_limit, pr_concurrent_limit.
Wat je kunt doen
Lees detail: daarin staat elk veld dat niet werd herkend en de lijst met velden die het endpoint accepteert.
Controleer eerst de hoofdletters. Velden in verzoeken zijn snake_case, net als de onderliggende kolomnamen. Verschillende endpoints serialiseren hun antwoorden in camelCase, dus een veldnaam uit de body van een antwoord kopiëren en terugsturen is de meest voorkomende oorzaak van deze fout. Is het veld dat je stuurde een camelCase-spelling van een bestaand veld, dan noemt detail de juiste spelling.
// rejected - camelCase, as returned in a response body
{ "securityAutomerge": true }
// accepted
{ "security_automerge": true }Vergelijk anders de body met het verzoekschema in de OpenAPI-specificatie.
Vorm van het antwoord
Alle API-fouten van fremforge zijn RFC 9457 problem+json:
{
"type": "https://docs.frem.sh/reference/api/errors/unknown-field",
"title": "Bad Request",
"status": 400,
"detail": "..."
}Baseer je logica op type, niet op title of detail: die zijn bedoeld voor mensen en kunnen anders worden geformuleerd.