検証用APIをRESTfulに公開するには?
質問
私は一般的にRESTful API設計のファンですが、検証APIにRESTの原則を適用する方法についてはよくわかりません。
ユーザーのプロファイル情報 (名前、電子メール、ユーザー名、パスワード) を照会および更新するための API があるとします。たとえば、与えられたユーザー名が有効で利用可能であるかどうかをクエリするなどです。
この場合、リソースは何でしょうか?どのようなHTTPステータスコードやヘッダが使用されるべきですか?
手始めに、私は
GET /profile/validate
で、これはクエリ文字列のパラメータを受け取って
204
または
400
が有効か無効かを判断します。しかし
validate
は明らかに動詞であり、名詞ではありません。
どのように解決するのですか?
あなたが説明したタイプのものは、確かにその'意味論においてよりRPC的ですが、それはあなたがRESTfulな方法であなたのゴールに到達できないことを意味するものではありません。
には
VALIDATE
HTTP 動詞がないので、それを中心に API 全体を構成することでどれだけの価値が得られるでしょうか?あなたの話の中心は、与えられたユーザー名が利用可能かどうかを判断する能力をユーザーに提供することです。それは私には、単純なリソース検索チェックに聞こえます。
GET: /profile/username/...
- もし結果が404であれば、その名前は利用可能です。
これが強調するのは、クライアントサイドの検証はあくまでクライアントサイドであるということです。データがサーバーに送信される前にクライアントで検証されることを保証するのは、UI の関心事です。RESTful サービスは、クライアントが検証を実行したかどうかを気にしません。独自の検証ロジックに基づいて、単にリクエストを受け入れるか拒否します。
REST はすべてを網羅するパラダイムではなく、クライアントとサーバーの通信を構造化する方法を記述しているにすぎません。
関連
-
[解決済み] HTTPステータスコード0 - Error Domain=NSURLErrorDomain?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み】全てのブラウザで、Webページのキャッシュを制御するには?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】RESTful 認証
-
[解決済み】Spring経由のRESTful認証
-
[解決済み】ダイジェスト認証とベーシック認証の違いは何ですか?
-
[解決済み】エンティティボディを持たないHTTP POSTを実行することはバッドプラクティスとみなされますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 負の配列サイズ例外
-
[解決済み] サブドメインとドメイン間でCookieを共有する
-
[解決済み】HTTPのPOSTとPUTの違いは何ですか?
-
[解決済み] bash/shellスクリプトからhttp応答コードを評価する方法は?
-
[解決済み】ダイジェスト認証とベーシック認証の違いは何ですか?
-
[解決済み】CURL コマンドライン URL パラメータ
-
[解決済み】no-cacheとmust-revalidateの違いについて
-
[解決済み】Accept* HTTPヘッダのq=0.5とは何ですか?
-
[解決済み】HTTP 301と308のステータスコードの違いは何ですか?
-
[解決済み] HTTPリダイレクトコードの違い