2017-02-16 4 views
2

Ich lese ein Buch über REST. Er empfiehlt für GET-Anforderungen, dass der Methodenname im HTTP-Methodenkopf stehen sollte und alle Parameter, die zum Abrufen der Daten erforderlich sind, sollten im URI enthalten sein. Beispiel: www.flickr.com/search=penguinsREST: GET Anrufe

Nun sind in vielen Fällen eine Reihe von Parametern erforderlich, um die Daten abzurufen. Zum Beispiel Name der Anwendung, Name des Benutzers, Adresse des Benutzers usw. Wenn mehrere Parameter zum Abrufen der Daten erforderlich sind, ist es ratsam, diese Informationen in die URI aufzunehmen oder können wir ein JSON-Objekt übergeben und HTTP POST verwenden ?

Oder würde, dass der Service machen nicht RESTful

Antwort

0

Wie bei allen Dingen gibt es Kompromisse. Wenn Sie GET mit Abfrageparametern filtern und Ihre Daten cachefähig sind, können Caches die Ergebnisse dieser Anfragen speichern und später speichern. Sie sind jedoch auf die Größe Ihrer Abfragezeichenfolge beschränkt. Die obere Grenze von einem Browser darf 2k Zeichen sein, aber die meisten Browser unterstützen mindestens 8k.

Wenn Sie mithilfe von POST und einem Filterkörper filtern, können Sie diesen Filter als Ressource speichern und später darauf verweisen, auch in späteren GET-Aufrufen. Sie haben auch keine obere Grenze für die Größe der Abfrage.

0

Nein, können Sie nicht JSON passieren in einem GET Anfrage, weil ein GET Anfrage keinen Körper hat. Sie können mehrere Abfrageparameter in der URI & zum Beispiel passieren:

http://myserver:port/search=penguins&type=movie&name=happy 

Sie Postman oder DHC aus dem Chrome Web Store können Sie Ihre Anfragen und Antworten zu testen.