WildFly RESTEasy で URL による MediaType の切り替え

WildFly 8.2 Final に載っている RESTEasy は 3.0.10.Final ですが、ドキュメントが 3.0.9.Final しか見つからないので 3.0.9 のドキュメントで紹介します。

Chapter 17. JAX-RS Content Negotiation

@Produces で複数の MediaType を指定しているときに、通常はリクエストヘッダーの Accept でどの MediaType を使うか指定出来ます。

ただヘッダーで指定するより、URL で指定出来た方が便利ですよね。
という訳でその設定方法です。 web.xml に これを追加するだけです。 例では jsonxml を指定出来るようにしています。

<context-param>
  <param-name>resteasy.media.type.mappings</param-name>
  <param-value>json : application/json, xml : application/xml</param-value>
</context-param>

使う方はこんな感じです。

/api/hoge.json
/api/hoge.xml
/api/hoge.json?q=abc

詳しくは公式のドキュメントを見て下さい。

お手軽 ですね!