5

В Phoenix Framework, как можно настроить собственный тип мультимедиа в Accept?Phoenix Framework: как настроить тип пользовательских носителей?

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 

запросы Все тесты (используя соединение от установки), получают ответы HTTP 406.

+0

Вы настраиваете '' api-json '' в своей конфигурации, но вы передаете '' json-api '' в ваш accepts plug. Типо в вопросе или опечатке в вашем коде? Это похоже на вероятного виновника –

+0

@ChrisMcCord Спасибо, что указали, что только опечатка в вопросе, который я боюсь, то есть код, который я тестировал, не имеет этой проблемы и до сих пор не работает. Исправил вопрос. –

+1

Можете ли вы указать, что «похоже, не работает?». Что не работает? Чего вы ожидали и что получаете? Кроме того, убедитесь, что ваша зависимость была перекомпилирована, 'rm -rf _build', если есть сомнения. –

ответ

7

Оказывается, что следующее неадекватно:

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

Вместо этого, как @ josé-валим предлагает в комментариях на вопрос, в удалении всего каталог _build сделал трюк. Я несколько раз возвращался назад и вперед, и каждый раз, когда я только касался и deps.compiled, никакой радости, и каждый раз, когда я удалял _build, радость.

+0

Спасибо. Я долгое время пытался выяснить, как запускать тесты с помощью ja_serializer. –

 Смежные вопросы

  • Нет связанных вопросов^_^