3

私はまったく新しい Phoenix プロジェクトを開始し、JSON API にJASerializerを使用しています。プロジェクトに何を追加するかについては、ドキュメントに従っています。

config/config.esx

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

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

web/router.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) Accept ヘッダーでサポートされているメディア タイプがありません。["json-api"] のいずれかが必要です。

_build フォルダーを削除し、プラグを再コンパイルしてみました。

DID の作業でplug JaSerializer.ContentTypeNegotiationルーターから削除されていたものですが、これは削除する必要のない重要な部分のようです。

誰にもアイデアはありますか?

ja_serializer参考になるかもしれないレポに提出した問題へのリンクは次のとおりです

4

0 に答える 0