Current section

Files

Jump to
step_flow lib step_flow api_spec.ex
Raw

lib/step_flow/api_spec.ex

defmodule StepFlow.ApiSpec do
@moduledoc false
alias OpenApiSpex.{Components, Info, OpenApi, Paths, SecurityScheme}
@behaviour OpenApi
@impl OpenApi
def spec do
%OpenApi{
info: %Info{
title: "Step Flow",
version: Application.spec(:ex_backend)[:vsn] |> to_string()
},
paths: Paths.from_routes(get_api_routes()),
components: %Components{
securitySchemes: %{"authorization" => %SecurityScheme{type: "http", scheme: "bearer"}}
}
}
|> OpenApiSpex.resolve_schema_modules()
end
defp get_api_routes do
StepFlow.Router.__routes__()
|> Enum.map(fn route ->
%Phoenix.Router.Route{route | path: "/api/step_flow" <> route.path}
end)
end
end