I have integrated phoenix_swagger into my backend. I am autogenerating my swagger doc UI based off my controllers and using it to interactively test my endpoints.
Nonetheless, my routes are secured with Bearer JWTs. I am trying to figure out how to define authorization headers in phoenix_swagger with absolutely no luck.
I really appreciate the help Elixir friends!
For a visual:
swagger_path :create_user do
post "/api/v1/users/create"
description "Create a user."
parameters do
user :body, Schema.ref(:Create), "User to save", required: true
end
response 200, "Success"
end
def create_user(conn, query_params) do
changeset = User.changeset(%User{}, query_params)
with {:ok, user} <- Repo.insert(changeset),
{:ok, token, _claims} <- Guardian.encode_and_sign(user) do
conn
|> Conn.put_status(201)
|> render("jwt.json", jwt: token)
else
{:error, changeset} ->
conn
|> put_status(400)
|> render(ErrorView, "400.json", %{changeset: changeset})
end
end
Standard Swagger 2.0 JSON Reference:
How can I represent 'Authorization: Bearer <token>' in a Swagger Spec (swagger.json)