Frage: Bei einer öffentlich zugänglichen Web-API (HTTP-Get / Post-Anforderungen senden, JSON / XML-Daten zurückholen), wie sollen Parameter behandelt werden, die entweder falsch geschrieben oder extra sind.
Es scheint mir, dass ein Fehler im Code des Anrufers unbemerkt bleiben kann, wenn die falschen Parameter ignoriert werden, da sie ein gültiges Ergebnis zurückerhalten würden. Dies kann insbesondere in Situationen der Fall sein, in denen dies anhand der zurückgegebenen Ergebnisse nicht offensichtlich ist.
Ich beziehe mich nur auf optionale Parameter. Wenn ein erforderlicher Parameter falsch geschrieben ist, wird der Parameter offensichtlich als fehlend betrachtet und ein Fehler wird zurückgegeben.
Beispielsweise verfügt der API-Aufruf "Ortssuche" über vier erforderliche Parameter (Standort, Radius, Sensor und Schlüssel) und mehrere optionale Parameter (Typ ist einer davon).
Ich kann diese Befehle (mit einem API-Schlüssel) ausführen und gültige Ergebnisse zurückerhalten:
curl "https://maps.googleapis.com/maps/api/place/search/json?location=45.47554,-122.794189&radius=500&sensor=false&key=<api_key>&type=bakery"
curl "https://maps.googleapis.com/maps/api/place/search/json?location=45.47554,-122.794189&radius=500&sensor=false&key=<api_key>&types=bakery"
Der erste Befehl hat den Parameter "types" in der Singularform, bei der es sich um einen ungültigen Schlüsselnamen handelt. Die API ignoriert diesen Parameter und gibt alle Arten von Entitäten zurück. In diesem Fall ist der Fehler offensichtlich, aber es kann Zeiten (und andere API-Aufrufe) geben, in denen dies nicht der Fall ist.