ドキュメント

§コンテンツネゴシエーション

コンテンツネゴシエーションは、同じリソース (URI) の異なる表現を提供することを可能にするメカニズムです。これは、複数の出力形式 (XML、JSON など) をサポートする Web サービスを作成する場合などに役立ちます。サーバー主導のネゴシエーションは、本質的に Accept* リクエストヘッダーを使用して実行されます。コンテンツネゴシエーションの詳細については、HTTP 仕様 を参照してください。

§言語

リクエストで許容される言語のリストは、Accept-Language ヘッダーからそれらを取得し、品質値に従ってソートする play.mvc.Http.RequestHeader#acceptLanguages メソッドを使用して取得できます。Play は、リクエストの言語を決定するために play.i18n.MessagesApi#preferred(Http.RequestHeader) を呼び出す際にこれを使用するため、このメソッドは自動的に最適な言語を使用します(アプリケーションでサポートされている場合。サポートされていない場合は、アプリケーションのデフォルト言語が使用されます)。

§コンテンツ

同様に、play.mvc.Http.RequestHeader#acceptedTypes メソッドは、リクエストに対する許容可能な結果の MIME タイプのリストを提供します。これは、Accept リクエストヘッダーからそれらを取得し、品質係数に従ってソートします。

現在のリクエストで特定の MIME タイプが許容可能かどうかは、play.mvc.Http.RequestHeader#accepts メソッドを使用してテストできます。

public Result list(Http.Request request) {
  List<Item> items = Item.find.all();
  if (request.accepts("text/html")) {
    return ok(views.html.Application.list.render(items));
  } else {
    return ok(Json.toJson(items));
  }
}

次へ: HTTP リクエストハンドラー / ActionCreator


このドキュメントに誤りを見つけた場合、このページのソースコードは こちら で確認できます。ドキュメントガイドライン を読んでから、プルリクエストを自由に送ってください。質問やアドバイスがあれば、コミュニティフォーラム でコミュニティとの会話を開始してください。