-
-
Notifications
You must be signed in to change notification settings - Fork 41
/
api.ex
52 lines (47 loc) · 1.21 KB
/
api.ex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
defmodule AshJsonApi.Api do
@json_api %Ash.Dsl.Section{
name: :json_api,
describe: """
Global configuration for JSON:API
""",
examples: [
"""
json_api do
prefix "/json_api"
serve_schema? true
log_errors? true
end
"""
],
schema: [
prefix: [
type: :string,
doc: "The route prefix at which you are serving the JSON:API"
],
serve_schema?: [
type: :boolean,
doc: "Whether or not create a /schema route that serves the JSON schema of your API",
default: false
],
authorize?: [
type: :boolean,
doc: "Whether or not to perform authorization for this API",
default: true
],
log_errors?: [
type: :boolean,
doc: "Whether or not to log any errors produced",
default: true
]
]
}
@transformers [AshJsonApi.Api.Transformers.CreateRouter]
@sections [@json_api]
@moduledoc """
The entrypoint for adding JSON:API behavior to an Ash API
# Table of Contents
#{Ash.Dsl.Extension.doc_index(@sections)}
#{Ash.Dsl.Extension.doc(@sections)}
"""
use Ash.Dsl.Extension, sections: @sections, transformers: @transformers
end