Packages
open_api_spex
3.19.0
3.22.3
3.22.2
3.22.1
3.22.0
3.21.5
3.21.4
3.21.3
3.21.2
3.21.1
3.21.0
3.20.1
3.20.0
3.19.1
3.19.0
3.18.3
3.18.2
3.18.1
3.18.0
3.17.3
3.17.2
3.17.1
3.17.0
3.16.4
3.16.3
3.16.2
3.16.1
3.16.0
3.15.0
3.14.0
3.13.0
3.12.0
3.11.0
3.10.0
3.9.0
3.8.0
3.7.0
3.6.0
3.5.2
3.5.1
3.5.0
3.4.0
3.3.0
3.2.1
3.2.0
3.1.0
3.0.0
2.3.1
2.3.0
2.2.0
2.1.1
2.1.0
2.0.0
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
Leverage Open Api Specification 3 (swagger) to document, test, validate and explore your Plug and Phoenix APIs.
Current section
Files
Jump to
Current section
Files
lib/open_api_spex/extendable.ex
defprotocol OpenApiSpex.Extendable do
@fallback_to_any true
def to_map(struct)
end
defimpl OpenApiSpex.Extendable, for: Any do
def to_map(struct), do: Map.from_struct(struct)
end
defimpl OpenApiSpex.Extendable,
for: [
OpenApiSpex.Components,
OpenApiSpex.Contact,
OpenApiSpex.Discriminator,
OpenApiSpex.Encoding,
OpenApiSpex.Example,
OpenApiSpex.ExternalDocumentation,
OpenApiSpex.Header,
OpenApiSpex.Info,
OpenApiSpex.License,
OpenApiSpex.Link,
OpenApiSpex.MediaType,
OpenApiSpex.OAuthFlow,
OpenApiSpex.OAuthFlows,
OpenApiSpex.OpenApi,
OpenApiSpex.Operation,
OpenApiSpex.Parameter,
OpenApiSpex.PathItem,
OpenApiSpex.RequestBody,
OpenApiSpex.Response,
OpenApiSpex.Schema,
OpenApiSpex.SecurityScheme,
OpenApiSpex.Server,
OpenApiSpex.ServerVariable,
OpenApiSpex.Tag,
OpenApiSpex.Xml
] do
def to_map(struct = %{extensions: e}) do
struct
|> Map.from_struct()
|> Map.delete(:extensions)
|> Map.merge(e || %{})
end
end