Using GraphQL Schema
GraphQL provides a powerful query language for your APIs enabling clients to get the exact data that they need. It has the ability to get data from multiple resources in a single request by aggregating the requested data to form one result set. GraphQL provides a single endpoint for accessing data in terms of types and fields.
TIBCO Cloud Integration - Flogo (PAYG) provides an out-of-the-box GraphQL trigger which turns your Flogo app into a GraphQL server implementation. Each Flogo flow in the app acts like a GraphQL field resolver. So the output of the flow, must match the return type of the field in the schema.
TIBCO Cloud Integration - Flogo (PAYG) allows you to create GraphQL triggers by dragging and dropping your GraphQL schema file or by navigating to the file. A flow gets automatically created for every query and mutation type in your schema. You must then open the flow and define what kind of data you want the flow to return. This saves you the time and effort to programmatically define data structures on the server.
GraphQL server implementation in TIBCO Cloud Integration - Flogo (PAYG)
To obtain samples of GraphQL schemas and app JSON files, go to https://github.com/project-flogo/graphql.
For details on the GraphQL trigger refer to the "GraphQL Trigger" section in the TIBCO Flogo® Activities and Triggers Guide.
Creating a new GraphQL trigger
- Open the app details page.
- Click Create. The Add triggers and flows dialog opens.
- Under Create new, select Trigger.
- Select the GraphQL Trigger card.
- Click Browse and navigate to your locally stored GraphQL schema file to upload it.
- Click Create. The new GraphQL trigger gets created with a placeholder for a flow attached to it.
To implement a single method in your .gql file
- In TIBCO Cloud Integration - Flogo (PAYG), open the app details page and click Create.
- In the Add triggers and flows dialog, click Flow under the Create new.
- Enter a name for the flow in the Name text box. Optionally, enter a description for the flow in the Description text box.
- Click Create.
- Select Start with a trigger.
- In the Triggers catalog, select the GraphQL Trigger card.
- Follow the on screen prompts to configure the trigger. See the section, "GraphQL Trigger", in the Activities and Triggers Guide for details on configuring the trigger. A flow with the name you specified gets created and attached to the newly created GraphQL trigger. This flow implements the method that you selected.
To implement all methods defined in your .gql file
- In the app details page, click Create. The Add triggers and flows dialog opens.
- Select Flow under Create new.
- Click GraphQL Schema under Start with.
- Click GraphQL Schema and upload your <name>.gql file by either dragging and dropping it to the Add triggers and flows dialog or navigating to it using the browse to upload link. TIBCO Cloud Integration - Flogo (PAYG) validates the file extension. You see a green check mark and the Upload button appears.
- Click Upload. TIBCO Cloud Integration - Flogo (PAYG) validates the contents of your schema and if it passes the validation, it creates the flows based on the methods defined in your schema file. One flow is created for each method in your schema. All the flows are attached the same trigger.
Manually attaching a flow to an existing GraphQL trigger in the app
Limitations on constructs in a GraphQL schema
- Custom scalar types
- Custom directives
- Subscription type
- Cyclic dependency in schema. For example, if you have a type Book which contains an object element of type, Author. The type Author in turn contains an element of type Book which represents the books written by the author. To retreive the Author, it creates a cyclic dependency where the Author object contains the Book object and the Book type in turn contains the Author object.