Current section

Files

Jump to
nex_core lib nex api.ex
Raw

lib/nex/api.ex

defmodule Nex.Api do
@moduledoc """
API module for JSON endpoints.
## Usage
defmodule MyApp.Api.Todos.Index do
use Nex.Api
# GET /api/todos - no params needed
def get do
%{data: fetch_todos()}
end
# POST /api/todos - with params
def post(%{"text" => text}) do
todo = create_todo(text)
{201, %{data: todo}}
end
# Error response
def post(%{"text" => ""}) do
{:error, 400, "text is required"}
end
end
## Return values
- `data` - Returns 200 with JSON body
- `{status, data}` - Returns custom status with JSON body
- `{:error, status, message}` - Returns error response
- `:empty` - Returns 204 No Content
"""
defmacro __using__(_opts) do
quote do
end
end
end