如何根据Accept标头在Play中使用不同的表示?

时间:2014-04-18 21:12:25

标签: rest playframework-2.1

使用Play Framework 2.1,我希望根据请求的Accept标头做出微小的行为变化。我唯一想做的就是:

CONF /路由

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(...);
    }
  }
}

似乎非常讨厌和程序化。关于惯用语的任何建议" Play"这样做的方法?

1 个答案:

答案 0 :(得分:1)

您可以测试是否request().accepts("application/json“),但是对于每种内容类型检查if-else似乎都是the standard way