8

API に検証のみのリクエストを設定したいと考えています。たとえば、次のような URL があるとします。

http://api.somesite.com/users/12345

ユーザーは、最終的にそのリソースに PATCH/PUT/POST するクライアントのフォームに情報を入力しています。ユーザーがフォームに記入しているときに、部分的に更新された表現をサーバーに定期的に送信して、入力のリアルタイム検証を表示できるようにすることができます (たとえば、「そのユーザー名は既に使用されています」、「そのパスワードは短すぎる")。

同じリソースでこの動作を可能にすると思われる標準の HTTP METHOD または HEADER はありません。私のオプションは次のとおりです。

  1. 検証用の新しい下位リソースを作成する
  2. カスタム ヘッダー (x-somesite-validation-only) と PUT を使用して、検証するが保存しないことを示します
4

2 に答える 2

5

いくつかのオプション

1) カスタム ヘッダーを使用する
2) 検証のみを示すクエリ文字列に何かを
挿入する 3) アクション URl を使用する (例: \IndividualClient\123\actions\Validate\Invoke {セクション 19 はこちらhttp://restfulobjects.files.wordpress.com/2011 ) /11/restful-objects-spec-052.pdf }
4) 階層 URL 例: \IndividualClient\123\Validation

この投稿から、このアドバイスを見つけました

RPC のような何かをしなければならないときはいつでも POST を使用してください 入力が大きい場合を除き、計算などには GET を使用してください。

具体的な質問に関しては、#4 と #5 には POST を使用する必要があります。これらの操作は、上記の「RPC に似た」ガイドラインに該当します。#5 については、POST は必ずしも Content-Type: application/x-www-form-urlencoded を使用する必要はないことに注意してください。これは、JSON や CSV >ペイロードと同じくらい簡単です。

ここに私が考えているものがあります:

これはリソースの追加です:
user/validation
POST
Request:UserResource
Response:ValidationResult
Response Codes 200, 400. 404. 500

これは、リソース
user/204/validation
POST
Request:UserResource,
Response:ValidationResult の更新です。 Response Codes 200, 400. 404. 500

于 2012-05-18T01:39:33.013 に答える
0

3 番目のオプションは、クライアントに検証機能を実装することです。この関数は、特定の情報が必要なときに特定のリクエストを送信します。

たとえば、パスワードが短すぎるかどうかを確認するためにリクエストを送信する必要はありません。ただし、単一のリクエストを送信して、ユーザー名が存在するかどうかを確認できます。

これは、Restful API (HTTP) を使用している Ajax で検証を行う方法です:)

于 2012-05-18T00:30:24.147 に答える