Frage

Mit Web-Service ist es eine gute Praxis zu Charge mehr Service betrachtet ruft in eine Nachricht, die eine Anzahl von entfernten Anrufen zu reduzieren. Gibt es eine Möglichkeit, dies mit RESTful Service zu tun?

War es hilfreich?

Lösung

Ich sehe nicht, wie batching Anfragen keinen Sinn in REST macht. Da die URL in einem REST-basierten Dienst den Betrieb darstellt, auszuführen und die Daten, auf die sich auszuführen, Stapelanforderungen machen würde das konzeptionelle Modell ernst brechen.

Eine Ausnahme wäre, wenn Sie auf die gleichen Daten mehrmals die gleiche Operation durchführt wurden. In diesem Fall können Sie passieren entweder in (für PUT oder POST funktioniert nur wirklich aber dies würde) mehr Werte für einen Anforderungsparameter oder kodieren diese Wiederholung im Körper. Der Gliffy REST API unterstützt das Hinzufügen von mehreren Benutzern auf den gleichen Ordner über

POST /folders/ROOT/the/folder/name/users?userId=56&userId=87&userId=45

die im Wesentlichen:

PUT /folders/ROOT/the/folder/name/users/56
PUT /folders/ROOT/the/folder/name/users/87
PUT /folders/ROOT/the/folder/name/users/45

Wie der andere Kommentator wies darauf hin, Paging-Ergebnisse aus einem GET können über Anforderungsparameter erfolgen:

GET /some/list/of/resources?startIndex=10&pageSize=50

, wenn der REST-Service unterstützt wird.

Andere Tipps

Wenn Sie wirklich zu Charge benötigen, Http 1.1 unterstützt ein Konzept HTTP Pipelining genannt, die Sie mehrere Anfragen senden können, bevor sie eine Antwort zu erhalten. Check it out hier

Ich bin mit Darrel Miller. HTTP unterstützt bereits HTTP Pipelining, und HTTP unterstützt am Leben erhalten lassen Sie mehr HTTP-Operationen gleichzeitig in der gleichen Steckdose Strom für die Antworten warten, um zu vermeiden, dass vor neue Anforderungen Streaming an den Server etc.

So mit HTTP-Pipelining und am Leben erhalten Sie die Wirkung der Dosierung erhalten, während die gleiche zugrunde liegende REST-API - so gibt es in der Regel keine Notwendigkeit für einen anderen REST-API für Ihren Service

Das Team mit Astoria nutzte mehrteiligen Mime einen Stapel von Anrufen zu senden. Anders als bei Pipelining als mehrteilige Nachricht kann die Absicht einer atomaren Operation abzuleiten. Scheint eher elegant.

Natürlich gibt es eine Möglichkeit, aber es wäre serverseitige Unterstützung benötigen. Es gibt keine magische Einheitsgröße Methodik passt, die ich kenne.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top