URL パターンに基づいたコンテンツ・ネゴシエーションの実装
REST (Representational State Transfer) アプリケーションは、リソースの異なる表示を戻すことができます。URL パターンに基づいたコンテンツ・ネゴシエーションを使用して、サーバーとクライアントの間でのデータ交換に使用するコンテンツ形式を決定できます。
このタスクについて
リソースはさまざまな形式でデータを表示できます。URL、要求パラメーター、または HTTP ヘッダーに基づいたコンテンツ・ネゴシエーションを実装できます。このタスクでは、URL パターンに基づいたコンテンツ・ネゴシエーションについて説明します。URL を使用したコンテンツ・ネゴシエーションは、最も単純なタイプのコンテンツ・ネゴシエーションです。このタイプのコンテンツ・ネゴシエーションは、任意の URL に対して常に同じメディア・タイプの同一コンテンツを戻します。
手順
@Path アノテーションで定義された URI を使用して、サーバーに戻されるデータのコンテンツ・タイプを決定します。
次の例では、URL レベルで実行されたコンテンツ・ネゴシエーションを示しています。/resources/myresource.xml に対する要求によって、リソースが XML 表示で戻されています。/resources/myresource.json に対する要求によって、リソースが JSON 表示で戻されています。
@Path("/resources")
public class Resource {
@Path("{resourceID}.xml")
@GET public Response getResourceInXML(@PathParam("resourceID") String resourceID) {
return Response.ok(/* entity in XML format */).type(MediaType.APPLICATION_XML).build();
}
@Path("{resourceID}.json")
@GET
public Response getResourceInJSON(@PathParam("resourceID") String resourceID) {
return Response.ok(/* entity in JSON format */).type(MediaType.APPLICATION_JSON).build();
}
}
タスクの結果
データを表示するリソース形式を URL パターンを使用して決定する、コンテンツ・ネゴシエーションを実装できました。