要求パラメーターに基づいたコンテンツ・ネゴシエーションの実装

REST (Representational State Transfer) アプリケーションは、リソースの異なる表示を戻すことができます。要求パラメーターに基づいたコンテンツ・ネゴシエーションを使用して、サーバーとクライアントの間でのデータ交換に使用するコンテンツ形式を決定できます。

このタスクについて

リソースはさまざまな形式でデータを表示できます。URL、要求パラメーター、または HTTP ヘッダーに基づいたコンテンツ・ネゴシエーションを実装できます。このタスクでは、さまざまなデータ形式の受信に使用する要求パラメーターに基づいたコンテンツ・ネゴシエーションについて説明します。

照会パラメーターなどの要求パラメーターを使用すると、サーバーが戻すコンテンツのタイプを示すことができます。例えば、パラメーター値が xml の場合、サーバーは XML コンテンツを戻すことが予想されます。同様に、パラメーター値が json の場合、サーバーは JSON コンテンツを戻すことが予想されます。

要求パラメーターを使用すると、URL パターンに基づいたコンテンツ・ネゴシエーションを実装した場合よりも URL の数が少なくなります。ただし、この方法では、リソース・メソッド実装においてパラメーターを使用および構文解析する必要があります。

手順

パラメーターを使用して、サーバーが戻すデータのコンテンツ・タイプを決定します。

次の例では XML および JSON のデータ形式が使用可能で、形式は照会パラメーターで指定されています。デフォルトでは、XML が戻されます。/resources/resource?format=json への要求によって、サーバーから JSON 形式が戻されます。例:

@Path("/resources")
public class Resource
{
    @Path("{resourceID}")
    @GET
    public Response getResource(@PathParam("resourceID") String resourceID, @QueryParam("format") String format)
    {
        if (format == null || "xml".equals(format)) {
            return Response.ok(/* entity in XML format */).type(MediaType.APPLICATION_XML).build();
        } else if ("json".equals(format)) {
            return Response.ok(/* entity in JSON format */).type(MediaType.APPLICATION_JSON).build();
        }
        return Response.notAcceptable(Variant.mediaTypes(MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_JSON_TYPE).add().build()).build();
    }
}

タスクの結果

データを表示するリソース形式をパラメーターを使用して決定する、コンテンツ・ネゴシエーションを実装できました。


トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contentnegotiation_reqparm
ファイル名:twbs_jaxrs_contentnegotiation_reqparm.html