GraphQL API Mapping

GraphQL API Mapping

The GraphQL API Mapping function type lets you map functions to GraphQL API endpoints without writing code. This is useful when the function can be implemented with a single GraphQL query or mutation.

Use the following file naming structure for the GraphQL API mapping implementation:

<method-name>.graphql.yml

Example

# list.graphql.yml
query: |
  query GetContacts($limit: Int, $cursor: String, $email: String) {
    contacts(first: $limit, after: $cursor, where: { email: $email }) {
      edges {
        node {
          id
          firstName
          lastName
          email
          phone
          createdAt
          updatedAt
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
variables:
  limit: 100
  cursor:
    $var: $.cursor
  email:
    $var: $.filter.email
responseMapping:
  records:
    $var: response.data.contacts.edges[*].node
  cursor:
    $cond:
      - $var: response.data.contacts.pageInfo.hasNextPage
      - $var: response.data.contacts.pageInfo.endCursor
      - null

Format

The GraphQL mapping specification includes:

  • query – The GraphQL query or mutation string
  • variables – Variables mapping for the GraphQL query
  • responseMapping – Mapping to transform the GraphQL response

Variables

Besides function-specific input variables described in each function's documentation, GraphQL functions have the following variables available:

  • All functions inside the connector have credentials variable that contains credentials from the current connection
  • All data collection functions have parameters variable that contains function-level parameters and collection-level parameters combined

For responseMapping, you get an additional response variable that has the following fields:

  • data – GraphQL response data
  • errors – GraphQL response errors (if any)
  • extensions – GraphQL response extensions (if any)