Ich entwerfe eine RESTful-API und stelle mich dem Titelproblem, das der Klarheit halber neu formuliert wurde:
Sollte ich schnell scheitern, wenn ein Client einen nicht erkannten Parameter sendet? Beispielsweise,
http://example.com/api/foo?bar=true&paula=bean
Dies bar
ist ein gültiger Parameter, der jedoch paula
nicht von der API angegeben wird. Sollte ich
- Warnen Sie den Client vor dem Fehler
- Scheitern Sie schnell
- Ignoriere es
Wenn ich den Client warne, kann ich nur für den ersten Parameter eine Warnung ausgeben, da er möglicherweise eine nahezu unendliche Anzahl davon sendet und der Server vermutlich bessere Dinge zu tun hat. Wenn dies fehlschlägt, wird nur der erste ungültige Parameter als Problem angegeben.
Ich bevorzuge die Ablehnung einer Warnung, um den Programmierer zum Handeln zu zwingen, da er das Problem sonst ignorieren und weiterhin Ressourcen verschwenden oder sich versehentlich selbst frachten könnte. Nichts zu tun ist in dieser Hinsicht noch schlimmer.
Sind meine Argumente sinnvoll? Gibt es eine akzeptierte Praxis für solche Dinge?
api/v1
usw. würde dies erledigen, aber es sind weiterhin keine inkrementellen Aktualisierungen möglich. +1