Phoenix - JSON API 406不可接受的响应

时间:2016-07-15 18:45:36

标签: json serialization http-headers phoenix-framework http-status-code-406

我启动了一个全新的Phoenix项目,并使用JASerializer作为我的JSON API。我按照文档中的内容添加到我的项目中,所以我有:

配置/ config.esx

config :phoenix, :format_encoders,
  "json-api": Poison

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

网络/ router.ex

pipeline :api do
  plug :accepts, ["json-api"]
  plug JaSerializer.ContentTypeNegotiation
  plug JaSerializer.Deserializer
end

我使用了JSON API Generator:

mix ja_serializer.gen.phoenix_api User users first_name:string last_name:string username:string email:string bio:text

我使用邮递员来测试我的请求,这就是我在添加一些标题时所看到的内容:

Accept */* returned a 200
Accept application/vnd.api+json returned a 406
Accept application/* returned a 406

因此,在我的Phoenix服务器控制台中,它输出:

  

[debug] **(Phoenix.NotAcceptableError)没有支持的媒体类型   接受标题,预期的[" json-api"]

我尝试删除_build文件夹并重新编译看起来对某些人有用的插头,但不是我。

我的路由器中删除plug JaSerializer.ContentTypeNegotiation的DID工作是什么,但这似乎是一件我不应该删除的重要部分。

有没有人有任何想法?

以下是我在ja_serializer回购提交的问题的链接,可能会有所帮助:https://github.com/AgilionApps/ja_serializer/issues/138#issuecomment-232998259

0 个答案:

没有答案