ex_api v1.0.0-rc.1 ExApi View Source

This module manages all apis and theirs implementations.

Link to this section Summary

Functions

Lists all registered apis

Checks given api

Checks implementation

Fetches api

Fetches default implementation for specified api

Fetches implementation

Fetches implementation for specified group and api

Fetches all implementations for specified api

Registers api asynchronously

Registers api implementation asynchronously

Changes default api implementation asynchronously

Changes default api implementation asynchronously

Starts ExApi GenServer server

Unregisters api asynchronously

Unregisters api implementation asynchronously

Link to this section Functions

Lists all registered apis.

Checks given api

Link to this function get_default_impl(api_or_module) View Source
get_default_impl(ExApi.Api.t) ::
  {:ok, ExApi.Implementation.t | nil} |
  {:error, ExApi.Error.ApiMismatchError.t} |
  {:error, ExApi.Error.ApiNotRegisteredError.t}
get_default_impl(module) ::
  {:ok, ExApi.Implementation.t | nil} |
  {:error, ExApi.Error.ApiNotFoundError.t} |
  {:error, ExApi.Error.ModuleNotLoadedError.t} |
  {:error, ExApi.Error.NotApiError.t}

Fetches default implementation for specified api.

Fetches all implementations for specified api.

Link to this function init(args) View Source
init(args :: term) ::
  {:ok, state} |
  {:ok, state, timeout | :hibernate} |
  :ignore |
  {:stop, reason :: any} when state: any

Callback for: GenServer.init/1.

Link to this function register_api(api_or_module) View Source
register_api(ExApi.Api.t | module) :: :ok

Registers api asynchronously.

Link to this function register_impl(impl_or_module) View Source
register_impl(ExApi.Implementation.t | module) :: :ok

Registers api implementation asynchronously.

Link to this function set_default_impl(impl_or_module) View Source
set_default_impl(ExApi.Implementation.t | module) :: :ok

Changes default api implementation asynchronously.

Link to this function set_default_impl(api_or_module, impl_or_group_with_id) View Source
set_default_impl(ExApi.Api.t | module, ExApi.Implementation.t | {atom, atom}) :: :ok

Changes default api implementation asynchronously.

Link to this function start_link(args \\ []) View Source
start_link([]) :: GenServer.on_start

Starts ExApi GenServer server.

Link to this function unregister_api(api_or_module) View Source
unregister_api(ExApi.Api.t | module) :: :ok

Unregisters api asynchronously.

Link to this function unregister_impl(impl_or_module) View Source
unregister_impl(ExApi.Implementation.t | module) :: :ok

Unregisters api implementation asynchronously.