Ich erstelle einen RESTful-Webdienst, der es mir ermöglicht, Dokumente nach Namen zu importieren. Ich würde ein Dokument mit einem Pfad wie diesem importieren:
%Vor%Wenn das Dokument noch nicht existiert, würde es ein neues erstellen; andernfalls würde es einfach das vorhandene Dokument überschreiben.
Ich habe die Frage, ob dies ein falscher Endpunkt für einen REST-fähigen Dienst ist. Normalerweise verwende ich POSTs für Erstellungen und PUTs für Updates. Hier ist nicht im Voraus bekannt, ob das Dokument bereits existiert. Wenn das vernünftig ist, was ist dann die beste HTTP-Methode? Wenn es nicht stimmt, was ist dann ein besserer Ansatz?
Die HTTP 1.1-Spezifikation sagt für POST:
9.5 POST
Die POST-Methode wird verwendet, um anzufordern, dass der Ursprungsserver die in der Anforderung eingeschlossene Entität als neuen Untergeordneten der durch die Anfrage-URI in der Anforderungszeile angegebenen Ressource akzeptiert.
Und für PUT:
9.6 PUT
Die PUT-Methode fordert an, dass die eingeschlossene Entität unter dem angegebenen Request-URI gespeichert wird.
In Anbetracht dessen und der Tatsache, dass PUT idempotent und POST nicht ist, scheint PUT die logische Wahl sowohl für das Erstellen als auch für das Aktualisieren zu sein.
Quelle: Ссылка
Tags und Links rest design web-services