5

フェニックスフレームワークでは、受諾でカスタムメディアタイプをどのようにルーティングしますか?フェニックスのフレームワーク:カスタムメディアタイプをルーティングする方法

Phoenix's own code commentsが必要であることを示し、デープの再コンパイルが必要であることを示していますが、その必要はありません。しかし、これは動作しないようです。

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応答を受信します。

+0

設定で '' api-json "'をマッピングしていますが、 '' json-api "'を受け入れプラグに渡しています。あなたのコードの質問や入力ミスで入力ミスですか?それはおそらく犯人のように思われる –

+0

@ChrisMcCordそれを指摘してくれてありがとう、私は恐れている質問の唯一の誤植です。つまり、私がテストしたコードにはその問題はなく、まだ動作しません。質問を修正しました。 –

+1

「動作していないようですか?」と指定できますか?何が効いていないのですか?あなたは何を期待していましたか、何を得ていますか?また、依存関係が再コンパイルされていることを確認してください。疑わしい場合は 'rm -rf _build'を実行してください。 –

答えて

7

は以下が不十分であることが判明:代わりに

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

、@ホセ・valim全体_buildディレクトリはトリックをした削除、質問のコメントで示唆するように。私は確かに前後に行って、私は触れて、deps.compiled、たびに喜びを感じるたびに、私は_build、喜びを削除するたびに行った。

+0

ありがとうございます。 ja_serializerでテストを実行する方法を理解しようとしていました。 –

関連する問題