2017-03-31 3 views
2

Gibt es eine Möglichkeit, eine Antwort vom Router zurückzugeben, ohne einen Controller zu durchlaufen? Ich habe ein paar verschiedene Methoden ohne Erfolg ausprobiert.Antwort von Phoenix router.ex ohne Controller

scope "/health_check", ZB do 
    get "/" do 
    text conn, "ok" 
    end 
end 

get "/health_check" do 
    text conn, "ok" 
end 
+0

Ich glaube nicht, dass es gibt; Alle Routing-bezogenen Funktionen in 'Phoenix.Router' erfordern einen' plug' und 'plug_opts': https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/router.ex – Dogbert

Antwort

1

Ich habe es zwei Arbeiten durch eine neue Datei namens health_check_router.ex mit dieser zu schaffen:

defmodule ZB.HealthCheckRouter do 
    use Plug.Router 

    plug :match 
    plug :dispatch 

    get "/" do 
    send_resp(conn, 200, "ok") 
    end 
end 

und das Hinzufügen dieser an der Unterseite des router.ex:

forward "/health_check", ZB.HealthCheckRouter 

Quelle : https://elixirforum.com/t/phoenix-router-inline-controllers/727/3

Verwandte Themen