Phoenix Framework:如何路由自定义媒体类型?
Phoenix Framework: How to Route Custom Media Type?
在 Phoenix Framework 中,如何在 Accepts 中路由自定义媒体类型?
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 响应。
事实证明以下内容不足:
% touch deps/plug/mix.exs
% mix deps.compile plug
% mix clean
相反,正如@josé-valim 在问题的评论中所建议的那样,删除整个 _build 目录就可以了。来来回回几次确定,每次只摸anddeps.compiled,没有joy,每次去掉_build,joy.
在 Phoenix Framework 中,如何在 Accepts 中路由自定义媒体类型?
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 响应。
事实证明以下内容不足:
% touch deps/plug/mix.exs
% mix deps.compile plug
% mix clean
相反,正如@josé-valim 在问题的评论中所建议的那样,删除整个 _build 目录就可以了。来来回回几次确定,每次只摸anddeps.compiled,没有joy,每次去掉_build,joy.