3

我开始了一个全新的 Phoenix 项目,并将JASerializer用于我的 JSON API。我按照文档了解要添加到我的项目中的内容,所以我有:

配置/config.esx

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

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

网络/路由器.ex

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

我使用了 JSON API 生成器:

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

我正在使用 Postman 来测试我的请求,这是我在向其中添加一些标头时看到的内容:

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

所以在我的 Phoenix 服务器控制台中,它正在输出:

[调试] ** (Phoenix.NotAcceptableError) 接受标头中不支持媒体类型,应为 ["json-api"] 之一

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

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

有没有人有任何想法?

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

4

0 回答 0