Rest 如何根据Accept标头使用不同的表示?
使用PlayFramework2.1,我想根据请求的Accept头在行为上做一些小的变化。我唯一能想到的是: 形态/路线Rest 如何根据Accept标头使用不同的表示?,rest,playframework-2.1,Rest,Playframework 2.1,使用PlayFramework2.1,我想根据请求的Accept头在行为上做一些小的变化。我唯一能想到的是: 形态/路线 GET /widgets controllers.WidgetController.getWidgets() WidgetController.java public class LoginController extends Controller { public static Result loginUser() { if (ctx().request(
GET /widgets controllers.WidgetController.getWidgets()
WidgetController.java
public class LoginController extends Controller {
public static Result loginUser() {
if (ctx().request().headers().get("Accept")[0].equals("application/json")) {
// ... json-specific logic
}
// common processing code
if (ctx().request().headers().get("Accept")[0].equals("application/json")) {
return ok();
} else {
return redirect(...);
}
}
}
看起来很肮脏,很程序化。关于惯用的“播放”方式有什么建议吗?您可以测试
request().是否接受(“应用程序/json”)
,但对于每种内容类型,使用if-else进行检查似乎是可行的。我希望Play有类似JAX-RS的东西,在那里我可以对它产生/消耗的内容进行注释。