Menu Close

52.2. 完全なリクエスト URI での作業

概要

リクエスト URI には大量の情報が含まれています。この情報のほとんどは、「リクエスト URI からのデータの注入」 で説明されているように、メソッドパラメーターを使用してアクセスできますが、パラメーターを使用すると、URI の処理方法に関する一定の制約が強制されます。パラメーターを使用して URI のセグメントにアクセスしても、完全なリクエスト URI へのリソースアクセスは提供されません。

URI コンテキストをリソースに注入することで、完全なリクエスト URI にアクセスできます。URI は UriInfo オブジェクトとして提供されます。URIInfo インターフェースは、URI をさまざまな方法で分解するための関数を提供します。また、URI を、クライアントに返す URI の構築を可能にする URIBuilder オブジェクトとして提供することもできます。

:experimental:

52.2.1. URI 情報の注入

概要

UriInfo オブジェクトであるクラスフィールドまたはメソッドパラメーターに @Context アノテーションが付けられると、現在のリクエストの URI コンテキストが UriInfo オブジェクトに注入されます。

クラスフィールドへの URI コンテキストの挿入 は、URI コンテキストを注入して設定されたフィールドを持つクラスを表しています。

クラスフィールドへの URI コンテキストの挿入

import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Path;
...
@Path("/monstersforhire/")
public class MonsterService
{
  @Context
  UriInfo requestURI;
  ...
}