Getting Started

The easiest set up involves using Phoenix. It should be roughly the same to set up an application using only Plug.

Configure your resources and API

See AshJsonApi.Api and AshJsonApi.Resource for information on configuring your apis and resources.

Create a router

defmodule MyApp.MyApi.Router do
  # The registry must be explicitly provided here
  use AshJsonApi.Api.Router, api: Api, registry: Registry 
end

Accept json_api content type

Add the following to your config/config.exs

# config/config.exs
config :mime, :types, %{
  "application/vnd.api+json" => ["json"]
}

This configuration is required to support working with the JSON:API custom mime type.

Add the routes from your API module(s)

Forward requests to the from your Phoenix router to the router you created for your Api.

For example:

scope "/json_api" do
  pipe_through(:api)

  forward "/helpdesk", MyApp.MyApi.Router
end

Run your API

From here on out its the standard phoenix behavior. Start your application with mix phx.server and your API should be ready to try out