私のユーザーは、iOSアプリにいくつかの情報フィールドを入力します。この情報は、RESTfulAPIを備えたサーバーで検証する必要があります。検証後、iOSアプリのUIが変更され、結果が示されます。
GET、PUT、またはPOSTのいずれも適切ではないようです。これは、リソースを取得しておらず、リソースが作成または更新されていないためです。
この検証を実装するための最適なREST操作は何ですか?
私のユーザーが入力しますいくつか情報フィールド iOSアプリで。この情報は、RESTfulAPIを備えたサーバーで検証する必要があります。検証後、iOSアプリのUIが変更され、結果が示されます。リソースを取得できません。また、リソースも作成または更新されません。
何も保存していない(リソースを変更していない)ので、これは技術的にはRESTfulよりもRPCの方が多いと思います。
以下は私の意見ですので、福音として受け取らないでください。
情報が単に送信されている場合そしてあなたが「はい」または「いいえ」と言っている場合そしてあなたはそれを保存していない、私はPOST
が大丈夫だと思います..
情報が実際に保存/更新されている場合の場合、適切なHTTPメソッドを選択する方がはるかに適切です。
POST = CREATE / SUBMIT (in an RPC context)
PUT = UPDATE (or CREATE if there is nothing to UPDATE)
私はあなたと同じシナリオを使用し、それにPUTを使用します。 「同じリクエストを2回送信すると、サーバー上で異なる状態になりますか?」と自問する必要があります。はいの場合はPOSTを使用し、いいえの場合はPUTを使用します。
ValidationResource
と2つのリクエストを使用することをお勧めします。このリソースの各インスタンスは、一連のデータの検証を表します。ワークフロー:
1。新しいValidationResource
を作成します
POST /path/to/validations
201 Created
Location: /path/to/validations/<unique-id-of-this-validation>
2。検索結果
GET /path/to/validations/<unique-id-of-this-validation>
200 OK
{'valid': true}
または{'valid': false}
これは、検証がサーバー状態のリソースであるRESTfulアプローチです。