Tailor Platform GraphQL API Specification
The Tailor Platform GraphQL API offers flexibility and the ability to define precisely the data you want to fetch.
Endpoint
GraphQL queries can be executed by sending POST HTTP requests to the endpoint. You can set up domain name in environment variables. See Quickstart for step-by-step guidance.
https://<your_domain_name>.erp.dev
Get started with GraphQL API
Please see GraphQL basics to get started with GraphQL API.
Authentication
In the Tailor Platform, authentication is required to access most resources, except all-user access is enabled.
First, open the GraphQL Playground by running the following command.
<span><span style="color: var(--shiki-token-comment)"># Open the browser and open GraphQL playground</span></span>
<span><span style="color: var(--shiki-token-function)">tailorctl</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">app</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">open</span></span>
<span></span>
To obtain an authorization token, perform the login
mutation.
<span><span style="color: var(--shiki-token-keyword)">mutation</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)"> login(</span></span>
<span><span style="color: var(--shiki-color-text)"> orgKey: </span><span style="color: var(--shiki-token-string-expression)">"<your_organization_name>"</span></span>
<span><span style="color: var(--shiki-color-text)"> id: </span><span style="color: var(--shiki-token-string-expression)">"<your_user_name>"</span></span>
<span><span style="color: var(--shiki-color-text)"> password: </span><span style="color: var(--shiki-token-string-expression)">"<your_password>"</span></span>
<span><span style="color: var(--shiki-color-text)"> ) {</span></span>
<span><span style="color: var(--shiki-color-text)"> token</span></span>
<span><span style="color: var(--shiki-color-text)"> user {</span></span>
<span><span style="color: var(--shiki-color-text)"> username</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>
After successfully logging in, you will receive the authorization token in the token
field. You can now include this token in the HTTP Authorization
header to access protected resources.
To include the token in GraphQL Playground, navigate to the Headers
tab and add the token to the Authorization
header.
<span><span style="color: var(--shiki-color-text)">{</span></span>
<span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">"Authorization"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">"Bearer <your_token>"</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>
Pagination, Filtering, and Sorting
You can paginate, filter, and sort data through GraphQL query inputs.
from
andsize
arguments are used for pagination.order
argument is used for sorting.query
argument is used for filtering.
<span><span style="color: var(--shiki-token-function)">QueryNames</span><span style="color: var(--shiki-color-text)">(</span></span>
<span><span style="color: var(--shiki-color-text)"> from: </span><span style="color: var(--shiki-token-constant)">Int</span></span>
<span><span style="color: var(--shiki-color-text)"> size: </span><span style="color: var(--shiki-token-constant)">Int</span></span>
<span><span style="color: var(--shiki-color-text)"> order: [</span><span style="color: var(--shiki-token-constant)">QueryNameOrderInput</span><span style="color: var(--shiki-color-text)">]</span></span>
<span><span style="color: var(--shiki-color-text)"> query: </span><span style="color: var(--shiki-token-constant)">QueryNameQueryInput</span></span>
<span><span style="color: var(--shiki-color-text)">)</span></span>
<span></span>
Pagination
You can do pagination of the query by defining from
and size
in query inputs.
You will get the size
number of data from from
position of the data.
Here is the example of query and response data.
<span><span style="color: var(--shiki-token-keyword)">query</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)"> users(from: </span><span style="color: var(--shiki-token-constant)">3</span><span style="color: var(--shiki-color-text)">, size: </span><span style="color: var(--shiki-token-constant)">2</span><span style="color: var(--shiki-color-text)">) {</span></span>
<span><span style="color: var(--shiki-color-text)"> collection {</span></span>
<span><span style="color: var(--shiki-color-text)"> id</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>
The above query respond 4th and 5th data.
<span><span style="color: var(--shiki-color-text)">{</span></span>
<span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">"data"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">"users"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">"collection"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> [</span></span>
<span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">"id"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">"bb2b565d-e2ce-4604-865d-7b7386ff38e0"</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-keyword)">"id"</span><span style="color: var(--shiki-token-punctuation)">:</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">"1b22c830-aec6-4195-bb8c-8a670d836e23"</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)"> ]</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)"> }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>
Sorting
You can use the order: [QueryNameOrderInput]
argument to sort the results of the query.
The argument accepts an array of QueryNameOrderInput values, each of which will be evaluated in the order specified in the array.
Argument | Description |
---|---|
direction | Desc or Asc |
fields | Field name as the enumeration value |
Filtering
Refer to Filters guide.
Service specific API specification
The API reference is based on the current Tailor Platform GraphQL schema.
- Tailor DB API: provides primary database within Tailor Platform, where you store and retrieve your data.
- StateFlow API: provides state management capabilities.