Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In this article

...

Field Name

Field Type

Field Dependency

Description

Label*

 

Default ValueGraphQL Client
Example: myGraphQL (SWAPI)

String

None.

Specify a unique name, especially if you have more than one of the same Snap in your pipeline.

 

GraphQL endpoint*

Default Value: None.
Examplehttps://api.github.com/graphql

String

None.

Specify the server URL that the Snap uses to connect to the GraphQL endpoint.

Query builder

Button

None.

If you need help to form the query, click on this button to open the query builder. If the account is valid, the fields available from the server schema appear on the left side of the query builder. You can choose any fields to query on by clicking the dropdown lists and checkboxes. The formed query appears on the right. Click Ok to close the UI component and the query appears in under Query in the Snap Settings.

Query

Default Value None.
Example
query MyQuery {
rateLimit {
cost
}
}

String/Expression

None.

Specify the query in the text box. You can also click the expression icon to build your query dynamically, which can evaluate both pipeline and upstream parameters. If you need help building the query, click the Query Builder button to open the query builder.

  • GraphQL query variables (names prefixed with $ in the query) are defined in the String literal parts of the query, and so do not conflict with upstream parameters that are also prefixed with $)

  • A GraphQL query follows a hierarchical structure that matches the schema of the GraphQL API. It starts with a root query object and includes nested fields and relationships as needed. The query is sent to the GraphQL server, which processes the request and returns a response containing the requested data in the exact format specified by the client.

Note

An expression-enabled Query setting might not align with the required formatting for the query builder UI to function correctly.

GraphQL variables

Use this field set to add query parameters to be included in the request. This is optional and can either be defined directly in the URL, as separate parameters, or both. 

Variable name

 

Default value: None.
Examplelimit

String/Expression/Suggestion

None.

Specify the name of the query variable. String values must be enclosed in double quotes (" ").

Note

Suggestions cannot be generated if the Query setting is an expression that references upstream document variables. Learn more.

Variable value

 

Default value None.
Example1
”this is a string”

String/Expression

None.

Specify the value to assign to the variable.

Client settings

Additional settings for the GraphQL Client.

Trust all certificates

Default Value: Not selected

Checkbox

None.

Select this checkbox to trust all certificates, such as self-signed certificates.  

Follow redirects

Default Value: Selected

Checkbox

None.

Select this checkbox to accept the response and redirect the request.

Maximum number of redirects

 

Default Value: 10
Example: 5

Integer/Expression

None.

Specify the maximum number of redirects to allow.

Read timeout (seconds)

 

Default Value: 900
Example: 60

Integer

None.

Specify the number of seconds that the Snap must wait before terminating the request because of a failure to read from the target service.

Connection timeout (seconds)

 

Default Value: 30
Example60

Integer

None.

Specify the number of seconds that the Snap must wait before terminating the request because of a failure to establish a connection to the target endpoint or service.

Enable pagination

Default Value: Not selected

Checkbox

None.

Select this checkbox to return multiple pages of results through repeated requests with the GraphQL query.

  • When you select this checkbox, multiple requests to the query are made as defined in the pagination properties.

  • When you deselect this checkbox, only a single request to the query is made.

Pagination properties

Use this field set to define pagination settings related to query executions that make multiple requests for pages of data.

Panel
bgColor#DEEBFF

Best practices:

  • We recommend that you limit your GraphQL query to only one root field when pagination is enabled. If you define multiple root fields in the query when pagination is enabled, it could cause duplicated data or produce unexpected results.

  • Use clear, descriptive names when defining GraphQL variables to ensure that you use the correct variables for the correct purposes, especially when defining the Cursor variable name.

Max page count

 

Default Value: 3
Example: 7

Integer

Appears when you select the Enable pagination checkbox

Specify the maximum number of pages of data to retrieve, if enough data is available. This value is the number of times a request is made with the specified query. The Snap stops fetching the next page when the maximum number of pages is reached.

  • This value must be greater than 0.

  • If you do not enter any value in this field, pages are requested until end of the data is reached. Requests with the query continue to be made until the value query response at the location defined by Has additional page path is false (no additional data can be returned by an additional request).

Pagination interval (seconds)

Default Value: 0
Example: 10

Integer

Appears when you select the Enable pagination checkbox.

Specify the time interval between each page request in seconds.

Pagination type*

 

Default Value: Cursor
ExampleCursor

Dropdown list

Appears when you select the Enable pagination checkbox

Select the type of pagination to use for the GraphQL query.

Currently, this Snap supports only cursor-type pagination.

Has additional page path*

 

Default Value: N/A
ExampleallEmployees.pageInfo.hasNextPage

String/Expression

Appears when you select the Enable pagination checkbox

Specify the path to the field in the GraphQL schema that indicates whether an additional page of data is available.
The path should start at the root field, not at the user-defined top-level query.

You can define only one Has additional page path and one Next cursor path for the query.
For this reason, we recommend that you include only one root field in the GraphQL query.

Next cursor path*

 

Default Value: None
ExampleallEmployees.pageInfo.endCursor

String/Expression

Appears when you select the Enable pagination checkbox

Specify the path to the field in the GraphQL schema that contains the cursor value for subsequent page requests. The path should start at the root field, not at the user-defined top-level query.

This path represents the location in the specified query’s payload that contains the value to be used as the cursor in the next page request.

You can define only one Has additional page path and one Next cursor path for the query.
For this reason, we recommend that you include only one root field in the GraphQL query.

Cursor variable name*

 

Default Value: None
ExampleafterCursor

String/Expression/Suggestion

Appears when you select the Enable pagination checkbox

Specify the name of the GraphQL variable that holds the cursor used for pagination. This variable is passed as the cursor value within the query.

The cursor variable name is validated against the variable names parsed from the query defined in the Query field. If it does not match one of these parsed variable names, the Snap fails with an error.

Ensure that the variable name entered in this field matches the name of the variable mapped to the cursor parameter of the root field. Using an incorrect variable name here may cause the cursor data for the next request to be sent to the wrong root field parameter. This misalignment could lead to multiple requests returning identical data (if Max page count is provided) or an infinite loop of requests (if Max page count is left blank).

Note

Suggestions cannot be generated if the Query setting is an expression that references upstream document variables.Learn more.

Include extensions

Default Value: Deselected

Checkbox/Expression

None

Select this checkbox to include extensions data in the output document of the GraphQL response.

[
{
data: {
queryField1: {
queryField2: {...}
},
...
},
extensions: {
extField1: {...},
...
}
}
]

The output document structure contains two fields, data and extensions. The latter includes the query result and extension content from the GraphQL response, or null if no respective content is available in the response. Learn more about the response format.

Tip

We recommend that you select this checkbox for optimum performance of the Snap.

When you deselect this checkbox, the output document uses the original document structure (to maintain backward compatibility) and contains only the content of the data field.

[
{
queryField1: {
queryField2: {...}
},
...
}
]

Snap Execution

Default ValueExecute only
Example: Validate & Execute

Dropdown list

N/A

Select one of the following three modes in which the Snap executes:

  • Validate & Execute: Performs limited execution of the Snap, and generates a data preview during pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during pipeline runtime.

  • Execute only: Performs full execution of the Snap during pipeline execution without generating preview data.

  • Disabled: Disables the Snap and all Snaps that are downstream from it.

...