View Source OpenAPI.Renderer.Schema (OpenAPI Generator v0.4.0)
Default implementation for callbacks related to rendering schemas
This module contains the default implementations for:
OpenAPI.Renderer.render_schema/2OpenAPI.Renderer.render_schema_field_function/2OpenAPI.Renderer.render_schema_struct/2OpenAPI.Renderer.render_schema_types/2
Extra Fields
It is sometimes useful for client libraries to store additional information on the structs
defined by the API description. This kind of private information is supported using the
output.extra_fields configuration. Each entry in the keyword list must use the name of the
field as the atom key and the type as the value. Types can be any valid
OpenAPI.Processor.Type.t/0.
Example:
config :oapi_generator, default: [
output: [
__info__: :map
]
]This will result in a field info: map added to every schema typespec and :info added to
every struct definition.
Configuration
All configuration offered by the functions in this module lives under the output key of the
active configuration profile. For example (default values shown):
# config/config.exs
config :oapi_generator, default: [
output: [
extra_fields: []
]
]
Summary
Functions
Render a schema, including typespecs, struct definition, and field function
Render a function __fields__/1 that returns information about schema field types
Render a single struct definition for all of the given schemas
Render the typespec(s) for all of the given schemas
Functions
@spec render(OpenAPI.Renderer.State.t(), OpenAPI.Renderer.File.t()) :: Macro.t()
Render a schema, including typespecs, struct definition, and field function
Default implementation of OpenAPI.Renderer.render_schema/2.
This implementation operates on schemas that appear in multiple contexts. If a schema appears in exactly one context as the request or response body of a function, it will instead be rendered by an operation callback.
This function calls the following other callbacks and concatenates their results:
@spec render_field_function(OpenAPI.Renderer.State.t(), [OpenAPI.Processor.Schema.t()]) :: Macro.t()
Render a function __fields__/1 that returns information about schema field types
Default implementation of OpenAPI.Renderer.render_schema_field_function/2.
This implementation renders a function spec and header with one clause for each schema type.
@spec render_struct(OpenAPI.Renderer.State.t(), [OpenAPI.Processor.Schema.t()]) :: Macro.t()
Render a single struct definition for all of the given schemas
Default implementation of OpenAPI.Renderer.render_schema_struct/2.
This implementation combines the fields of all schemas to create one struct. It also uses the
output.extra_fields configuration to add additional fields to the struct for private use by
the client library. See Extra Fields in this module's documentation.
@spec render_types(OpenAPI.Renderer.State.t(), [OpenAPI.Processor.Schema.t()]) :: Macro.t()
Render the typespec(s) for all of the given schemas
Default implementation of OpenAPI.Renderer.render_schema_types/2.
This implementation uses the output.extra_fields configuration to add additional fields to
the struct for private use by the client library. See Extra Fields in this module's
documentation.
This function calls the OpenAPI.Renderer.render_type/2 callback for every field's type