16

Twitter APIで遊んでいて、何かおかしなことに気づきました。更新にはPOSTメソッドが必要ですが、クエリ文字列に引数が必要です。(たとえば、ここの開発者コンソールでのステータス/更新呼び出しを参照してください。)

明らかにこれは技術的に可能ですが、なぜ誰かがそのようにするのでしょうか?POST引数は本文に属していませんか?

4

3 に答える 3

13

どちらのオプションも同様に有効です。POSTのURLでパラメーターを使用するための私のお気に入りの例は、マップ上にウェイポイントを設定するアプリケーションです。例えば

     POST /map/route/45/waypoints?lat=35&long=74

この場合、パラメーターは、本体で汎用リソースに渡されるパラメーターよりも、場所の識別子としてURIでより意味があります。

于 2012-05-02T01:54:30.040 に答える
6

RESTアーキテクチャでは、GETとPOSTは単なる動詞であり、リソースを取得または作成/更新するように指示します。URIはリソースの識別を定義します。

例:

POST /student?name=Tom&age=12 >> It will create a new student with name Tom and age 12.
POST /student/10?name=Tom&age=12 >> It will update student with id 20 with name Tom and age 12.

データを本文のペイロードまたはURIにバインドする必要があるという規則はありません。これは、HTMLフォームデータがPOSTで送信されるWEB1.0の概念とは異なります。

于 2012-05-02T06:59:47.663 に答える
-2

WEB APIの引数が本文にあるか、クエリがPOSTで送信するContent-Typeヘッダーに依存している場合。

たとえば、Content-Typeの場合:application / json; charset = UTF-8の場合、引数はjsonとして本文に期待されます。Content-Typeの場合:application / x-www-form-urlencoded; charset = UTF-8の場合、引数はクエリ文字列で予期されます

于 2012-11-30T10:26:51.117 に答える