Phoenix Framework:如何路由自定义媒体类型?

时间:2015-09-25 14:47:39

标签: http-headers url-routing mime-types elixir phoenix-framework

在Phoenix Framework中,如何在接受中路由自定义媒体类型?

Phoenix's own code comments表示以下是所有必要的 - 加上deps的重新编译,尽管需要它逃脱了我。但是,这似乎不起作用:

config.exs:

[…]

config :plug, :mimes, %{
  "application/vnd.api+json" => ["json-api"]
}

router.ex:

pipeline :api do
  plug :accepts, ["json-api"]
end

[…]

scope "/", SomeApp do
  pipe_through :api

  […]

some_test.ex:

setup do
  conn = conn() |> put_req_header("accept", "application/vnd.api+json")
  {:ok, conn: conn}
end

所有测试的请求(使用来自设置的conn)都会收到HTTP 406响应。

1 个答案:

答案 0 :(得分:7)

原来以下是不充分的:

% touch deps/plug/mix.exs
% mix deps.compile plug
% mix clean

相反,正如@josé-valim在问题的评论中建议的那样,删除整个_build目录就可以了。我来回走了几次以确定,每次我只触摸和deps.compiled,没有快乐,每次我删除_build,欢乐。