Tyk GraphQL Explained
With Tyk’s Universal Data Graph, you can quickly bring the power of GraphQL into your organization without all of the overhead of creating and deploying new GraphQL services.▶ Watch the video
What is Universal Data Graph?
The premise behind Universal Data Graph is that within the API gateway itself you can connect multiple data sources and stitch them together into a single schema to create new API products. These data sources currently include being able to use existing RESTful and GraphQL endpoints to derive the data needed to power your graph. In the future, Tyk looks to expand this functionality to include direct database access as well as the ability to subscribe to sources such as Kafka streams.
In short, with Tyk’s Universal Data Graph, you can quickly bring the power of GraphQL into your organization without all of the overhead of creating and deploying new GraphQL services.
What API Management functionalities are available for GraphQL in Tyk?
With Tyk’s support for GraphQL endpoints within our API management platform, you get all of our core features, previously only available with RESTful endpoints in Tyk, and then some with the inclusion of our GraphQL-specific features!
Some of our favorites include:
- Easily add security to your endpoints in a few clicks (or lines of configuration, if you prefer) by adding Authorisation Modes to your endpoints (including OAuth 2.0, right out of the box!)
- Limit your exposure to query depth-oriented DDoS attacks by using our configurable Query Depth Limiting feature
- Easily configure authorization to specific fields by using Field-based permissions based on the user’s role and access
- Allow users to easily test queries by quickly exposing a GraphQL Developer Playground in just a single click
Why use Universal Data Graph?
If you are looking to build robust GraphQL services quickly, efficiently, and securely, then Universal Data Graph is right for you. By using Universal Data Graph, even with very little knowledge of GraphQL, you’ll be able to create your first endpoint in 3 easy steps:
- Define the GraphQL schema for your data
- Map in the data sources which will supply the data to your endpoint
- Begin to use your endpoint!
The highlights of using UDG include:
Requires a very little knowledge of GraphQL to get started
Even a non-technical person with minimal knowledge of GraphQL could very quickly figure out how to create an endpoint in UDG. Create a schema, map in your data, and away you go! The alternative of building GraphQL services from the ground up requires learning GraphQL, new infrastructure, and many of the other challenges of building new endpoints in a new technology.
Requires no new services to be built
Since UDG uses your existing services, you don’t need to worry about building, testing, and deploying a new service (which can take a lot of time, effort, and budget). This also means that your existing consumers will still have access and those that want to use GraphQL to access your services can easily do so.
Minimal amount of support required for your new GraphQL endpoint(s)
With the adoption of new services usually comes the expansion of your support efforts to cover them. Again, this leads to an increase in the cost of ownership. Luckily, since UDG is merely leveraging your existing services to fulfill the GraphQL requests, your support team only needs to worry about supporting the services that are already under their watch, and nothing more.
Why would you want to use API Management with your GraphQL APIs?
Securing your GraphQL APIs, or APIs in general, can be one of the toughest and most crucial tasks that developers face. With Tyk, we offer an easy path to securing your endpoints with some of the most common Authentication Modes used in modern engineering, including OAuth 2.0 and custom auth flows.
By adding Tyk into your stack, you will be able to easily add authorization to your GraphQL endpoints. Tyk makes it easy to protect your resources by allowing only those who should have access to do so and to protect against GraphQL-based DDoS attacks. All of this can be done through our easy-to-use dashboard or through configuration.
How to apply API management to GraphQL endpoint with Tyk:
Here you have a list of some tutorials that can help you with GraphQL’s Tyk integration:
01. How to enable GraphQL field-based permissions in Tyk
In this tutorial, we cover how to enable and use field-based permissions for a GraphQL endpoint in Tyk.
02. How to add query depth limits to your GraphQL APIs in Tyk
In this tutorial, we go over how to set query depth limiting at the global and per API level. This can help to avoid users from deeply nesting their queries and also help to combat malicious queries attempting to execute a Denial of Service attack on your GraphQL endpoint.
03. How to secure your GraphQL endpoints in Tyk using an Authentication Token
This tutorial shows you how to secure your GraphQL API in Tyk. In this tutorial, we turn on Authentication Token security, create a policy, create a key, and show you how to use that key in the Tyk GraphQL Playground to issue a query.
04. How to enable the GraphQL developer playground in Tyk
This tutorial shows you how to enable the GraphQL playground so that developers who are using your service can develop queries without having to log into the dashboard.
05. How to proxy to an existing GraphQL service
In this tutorial, we cover how to use Tyk to proxy to an existing GraphQL service to enable users to use all the great GraphQL features Tyk has to offer including adding policies, rate limiting, quotas, and many others.