OpenApiSpex.Reference (open_api_spex v3.21.3)

View Source

Defines the OpenApiSpex.Reference.t type.

Summary

Types

t()

@type t() :: %OpenApiSpex.Reference{"$ref": String.t()}

Reference Object

A simple object to allow referencing other components in the specification, internally and externally. The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.

Functions

resolve_parameter(reference, parameters)

@spec resolve_parameter(t(), %{required(String.t()) => OpenApiSpex.Parameter.t()}) ::
  OpenApiSpex.Parameter.t() | nil

resolve_request_body(reference, request_bodies)

@spec resolve_request_body(t(), %{required(String.t()) => OpenApiSpex.RequestBody.t()}) ::
  OpenApiSpex.RequestBody.t() | nil

resolve_response(reference, responses)

@spec resolve_response(t(), %{required(String.t()) => OpenApiSpex.Response.t()}) ::
  OpenApiSpex.Response.t() | nil

resolve_schema(reference, schemas)

@spec resolve_schema(t(), OpenApiSpex.Components.schemas_map()) ::
  OpenApiSpex.Schema.t() | nil

Resolve a Reference to the Schema it refers to.

Examples

iex> alias OpenApiSpex.{Reference, Schema}
...> schemas = %{"user" => %Schema{title: "user", type: :object}}
...> Reference.resolve_schema(%Reference{"$ref": "#/components/schemas/user"}, schemas)
%OpenApiSpex.Schema{type: :object, title: "user"}