View Source AshJsonApi.OpenApi (ash_json_api v1.4.13)
Provides functions for generating schemas and operations for OpenApi definitions.
Add open_api_spex
to your mix.exs
deps for the required struct definitions.
Example
defmodule MyApp.OpenApi do
alias OpenApiSpex.{OpenApi, Info, Server, Components}
def spec do
%OpenApi{
info: %Info{
title: "MyApp JSON API",
version: "1.1"
},
servers: [
Server.from_endpoint(MyAppWeb.Endpoint)
],
paths: AshJsonApi.OpenApi.paths(MyApp.Api),
tags: AshJsonApi.OpenApi.tags(MyApp.Api),
components: %Components{
responses: AshJsonApi.OpenApi.responses(),
schemas: AshJsonApi.OpenApi.schemas(MyApp.Api)
}
}
end
end
Summary
Functions
Paths (routes) from the domain.
Common responses to include in the API Spec.
Resource schemas to include in the API spec.
Tags based on resource names to include in the API spec
Functions
@spec paths( domain :: module() | [module()], module() | [module()], opts :: Keyword.t() ) :: OpenApiSpex.Paths.t()
Paths (routes) from the domain.
@spec responses() :: OpenApiSpex.Components.responses_map()
Common responses to include in the API Spec.
@spec schemas(domain :: module() | [module()]) :: %{ required(String.t()) => OpenApiSpex.Schema.t() }
Resource schemas to include in the API spec.
@spec tags(domain :: module() | [module()]) :: [OpenApiSpex.Tag.t()]
Tags based on resource names to include in the API spec
@spec write_attributes( resource :: module(), [Ash.Resource.Actions.Argument.t()], action :: term(), route :: term(), format :: content_type_format() ) :: %{required(atom()) => OpenApiSpex.Schema.t()}