2

REST API にカスタム コンテンツ タイプを使用する慣行に従いたい場合、プロジェクト全体に対して 1 つのカスタム コンテンツ タイプを定義する必要がありますか、それとも各リソース表現 (リソースとの間で送受信されるもの) に対してカスタム コンテンツ タイプを定義する必要がありますか? REST API) が私のプロジェクトで使用されていますか?

つまり、サービスが名前空間 com.mycompany.mybookstoreapp にあると言う「Bookstore」REST API を構築している場合、単一のコンテンツ タイプを作成する必要があります。

Content-Type: application/com.mycompany.mybookstoreapp+xml

それとも、Bookstore REST API を介して投稿/取得できるデータの種類ごとにコンテンツ タイプを作成する必要がありますか?

Content-Type: application/com.mycompany.mybookstoreapp.user+xml
Content-Type: application/com.mycompany.mybookstoreapp.order+xml
Content-Type: application/com.mycompany.mybookstoreapp.book+xml
4

1 に答える 1

1

各データのコンテンツタイプを説明するのが最も安全な解決策のようです。後で何らかの理由でHATEOASに準拠したい場合は、より簡単になります。一方、すべてに対して1つのコンテンツタイプを使用することはあまり意味がありません。コンテンツタイプは、特定のデータのタイプを記述します。

バージョニングについては、3つの異なる方法でAPIにバージョニングを追加できます。まず、URIにバージョン番号を追加できます。これは簡単な方法です。

/api/v1/users

または、新しいコンテンツタイプを使用できます。

application/vnd.acme.user-v1+xml

または、Acceptヘッダーで修飾子を使用することもできます。これにより、コンテンツタイプに触れないようになります。

application/vnd.acme.user+xml;v=1

それは本当にあなた次第です。最初のソリューションは簡単ですが、他の2つのソリューションよりもRESTfulではありません。しかし、これらのソリューションには、よりスマートなクライアントが必要です。

于 2012-08-15T17:41:40.303 に答える