2

WebサービスのRESTfulAPIを構築しているときに、たとえば、クライアントにリンク関係を提供しようとしています(これはGETエントリポイントが返すものです)。

<doc>
 <links>
  <link rel="self" href="/home"/>
  <link rel="post" href="/post-new-article"/>
 </links>
</doc>

クライアントが新しい記事を投稿するには、クエリパラメータとしてでPOSTリクエスト/post-new-articleを送信する必要があることを理解することを期待しています。"text"

しかし、私はドキュメントで何も述べていませんでした"POST"し、私が期待しているHTTPクエリパラメータを彼に伝えませんでした。この情報をどこでどのように提供すればよいですか?それに関する事実上の標準/慣習はありますか?

4

1 に答える 1

3

技術的に正しい答えは、ドキュメントのメディアタイプによって定義されるということです。たとえば、APIがHTMLを提供するとします。そして、クライアントはブラウザです。

慣例により、ユーザーエージェント(ブラウザー)がリソース(アンカータグで識別される)にアクセスするGETと、APIを提供するサーバーにHTTPを発行します。すべてが計画どおりに進んだと仮定すると、サーバーはそのリソースの別のHTML表現を返します。

同様に、ユーザーエージェントがフォームを送信すると、タグの属性がデータである必要があることを示さGETない限り、デフォルトでHTTPを発行します。(詳細はこちら。)methodformPOST

APIドキュメントでは、RESTサービスが使用するメディアタイプを詳細に指定する必要があります。カスタムタイプの場合、仕様にはリンクをたどるためのルールを含める必要があります。APIがHTTPを介して実行される場合、ルールは、、、など、およびその他の要件/規則を指定しGETます。POSTDELETE

ロイ自身から:http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

于 2011-12-23T19:47:46.647 に答える