Documentation

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

コンテントネゴシエーションは、同じリソース (URI) から異なる表現を提供することを可能にする機構です。これは 例えば いくつかの出力フォーマット (XML, JSON, etc.) をサポートする Web サービスを書く場合に便利です。サーバ主導のネゴシエーションは、基本的に Accept* リクエストヘッダを使って実行されます。HTTP 仕様 で、コンテントネゴシエーションについてもっと詳しい情報を見つけることができます。

§言語

あるリクエストで利用可能な言語の一覧は、Accept-Language ヘッダからこれらを探して、品質値に従って並び替える play.mvc.Http.RequestHeader#acceptLanguages を使うことで取得できます。Play はこれを使ってリクエストの HTTP コンテキストに lang 値を設定するので、 最適な言語が使用されます (アプリケーションがサポートしている場合。そうでない場合はアプリケーションのデフォルト言語が使用されます) 。

§コンテンツ

同様に、play.mvc.Http.RequestHeader#acceptedTypes メソッドは、あるリクエストに対するレスポンスにおいて利用可能な MIME タイプの一覧を提供します。このメソッドは、利用可能な MIME タイプを Accept リクエストヘッダから検索し、品質値に従って並び替えます。

play.mvc.Http.RequestHeader#accepts メソッドを使って、現在のリクエストが提供される MIME タイプを利用できるかどうかをテストすることができます:

public Result list() {
    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));
    }
}

Next: エラーハンドリング


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。