1. ホーム
  2. http

検証用APIをRESTfulに公開するには?

2023-09-27 07:57:29

質問

私は一般的にRESTful API設計のファンですが、検証APIにRESTの原則を適用する方法についてはよくわかりません。

ユーザーのプロファイル情報 (名前、電子メール、ユーザー名、パスワード) を照会および更新するための API があるとします。たとえば、与えられたユーザー名が有効で利用可能であるかどうかをクエリするなどです。

この場合、リソースは何でしょうか?どのようなHTTPステータスコードやヘッダが使用されるべきですか?

手始めに、私は GET /profile/validate で、これはクエリ文字列のパラメータを受け取って 204 または 400 が有効か無効かを判断します。しかし validate は明らかに動詞であり、名詞ではありません。

どのように解決するのですか?

あなたが説明したタイプのものは、確かにその'意味論においてよりRPC的ですが、それはあなたがRESTfulな方法であなたのゴールに到達できないことを意味するものではありません。

には VALIDATE HTTP 動詞がないので、それを中心に API 全体を構成することでどれだけの価値が得られるでしょうか?あなたの話の中心は、与えられたユーザー名が利用可能かどうかを判断する能力をユーザーに提供することです。それは私には、単純なリソース検索チェックに聞こえます。 GET: /profile/username/... - もし結果が404であれば、その名前は利用可能です。

これが強調するのは、クライアントサイドの検証はあくまでクライアントサイドであるということです。データがサーバーに送信される前にクライアントで検証されることを保証するのは、UI の関心事です。RESTful サービスは、クライアントが検証を実行したかどうかを気にしません。独自の検証ロジックに基づいて、単にリクエストを受け入れるか拒否します。

REST はすべてを網羅するパラダイムではなく、クライアントとサーバーの通信を構造化する方法を記述しているにすぎません。