5

In Phoenix Framework, come si fa a instradare un tipo di supporto personalizzato in Accetta?Phoenix Framework: come instradare il tipo di supporto personalizzato?

Phoenix's own code comments indicare quanto segue è tutto ciò che è necessario, oltre a una ricompilazione di deps, anche se la necessità di quello sfugge a me. Ma, questo non sembra funzionare:

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 

richieste tutti i test (utilizzando conn dalla configurazione) riceve le risposte HTTP 406.

+0

Si sta mappando '" api-json "' nella propria configurazione, ma si sta passando '" json-api "' al plug accettato. Errore di battitura nella domanda o errore di battitura nel tuo codice? Sembra il probabile colpevole –

+0

@ChrisMcCord Grazie per averlo indicato, solo un errore di battitura nella domanda temo, cioè, il codice che ho testato non ha quel problema e continua a non funzionare. Corretta la domanda –

+1

Puoi specificare "non sembra funzionare?". Cosa non funziona? Cosa ti aspettavi e cosa ottieni? Inoltre, assicurati che la tua dipendenza sia stata ricompilata, 'rm -rf _build' in caso di dubbio. –

risposta

7

scopre che la segue è inadeguata:

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

Invece, come suggerisce @ José-Valim nei commenti della domanda, cancellando l'intera directory _build ha fatto il trucco. Sono andato avanti e indietro alcune volte per essere sicuro, e ogni volta ho solo toccato e deps.compiled, nessuna gioia, e ogni volta ho rimosso _build, gioia.

+0

Grazie. Ho passato molto tempo a cercare di capire come eseguire i test con ja_serializer. –

Problemi correlati