2011-12-05 8 views
1

私は(これは何をGETエントリポイントの戻りである)例えば、クライアントにlink relationsを与えるためにしようとしている私のウェブサービスのRESTfulなAPIを構築中:POSTエンドポイントのリンク関係を作成する方法は?

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

私がいることを理解するために、クライアントを期待してい新しい記事を投稿するには、/post-new-article"text"というPOSTリクエストをクエリパラメータとして提出しなければなりません。

しかし、私は"POST"について何も言及していませんでした。私が期待しているHTTPクエリパラメータを教えてくれませんでした。どのようにしてこの情報を提供すべきですか?それに関する事実上の標準/大会はありますか?

答えて

2

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

ユーザーエージェント(ブラウザ)が(アンカータグで識別される)リソースを訪問すると、APIを提供するサーバーにHTTP GETが発行されます。すべてが計画どおりに進むと仮定すると、サーバーはそのリソースの別のHTML表現を返します。ユーザーエージェントがフォームを送信する際formタグのmethod属性は、それがデータをPOST必要があることを示していない限り

同様に、それはデフォルトでHTTP GETを発行します。 (詳細here

APIドキュメントでは、RESTサービスが使用するメディアタイプを詳細に指定する必要があります。カスタムタイプの場合、仕様にはリンクをたどるためのルールが含まれている必要があります。 APIがHTTP経由で実行されている場合、ルールにはGET,POSTDELETEなどの他の要件と慣習が指定されます。

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

関連する問題