View Source Ash.Api.Dsl (ash v2.11.8)

A small DSL for declaring APIs

Apis are the entrypoints for working with your resources.

Apis may optionally include a list of resources, in which case they can be used as an Ash.Registry in various places. This is for backwards compatibility, but if at all possible you should define an Ash.Registry if you are using an extension that requires a list of resources. For example, most extensions look for two application environment variables called :ash_apis and :ash_registries to find any potential registries

dsl-documentation

DSL Documentation

index

Index

docs

Docs

api

api

General Api configuration

Examples:

api do
  description """
  Resources related to the flux capacitor.
  """
end

  • :description (String.t/0) - A description for the api.

resources

resources

List the resources present in this API

Examples:

resources do
  registry MyApp.Registry
en

  • :allow - Support a dynamic resource list by providing a callback that checks whether or not the resource should be allowed.

  • :allow_unregistered? (boolean/0) - Whether the Api will support only registered entries or not. The default value is false.

  • :registry (atom/0) - Configure the registry that contains the resources. It is recommended to use application config for this, to help with compile times. See the quick start guide for more.

resource

resource

A resource present in the API

Examples:

resource Foo
  • :resource (atom/0) - Required.

execution

execution

Options for how requests are executed using this Api

Examples:

execution do
  timeout :timer.seconds(30)
end

  • :timeout (timeout/0) - The default timeout to use for requests using this API. See the timeouts guide for more. The default value is 30000.

  • :trace_name (String.t/0) - The name to use in traces. Defaults to the last part of the module.
    See the monitoring guide for more

authorization

authorization

Options for how requests are authorized using this Api.

See the security guide for more.

Examples:

authorization do
  authorize :by_default
end

  • :require_actor? (boolean/0) - Requires that an actor has been supplied. The default value is false.

  • :authorize - When to run authorization for a given request. Valid values are :always, :by_default, :when_requested The default value is :when_requested.