Gato GraphQL

plugin banner

Interact with all your data in WordPress.

Author:Gato GraphQL (profile at wordpress.org)
WordPress version required:5.4
WordPress version tested:6.5.2
Plugin version:2.2.3
Added to WordPress repository:08-01-2024
Last updated:27-03-2024
Rating, %:100
Rated by:2
Plugin URI:https://gatographql.com
Total downloads:1 179
Active installs:20+
plugin download
Click to start download

Gato GraphQL is a productivity tool for interacting with data in your WordPress site. It allows you to retrieve, manipulate and store again any piece of data, in any desired way, using the GraphQL language.

Use Gato GraphQL to create headless WordPress sites (using Nextjs or any other JS framework), power your Gutenberg blocks, fetch data for your theme, plugin or website, or expose an API for other applications.

Gato GraphQL supports Persisted Queries out of the box. Persisted queries are similar to WP REST API endpoints, however they are created and published directly within the wp-admin, using the GraphQL language (and no PHP code at all).

With persisted queries, you can have the great user experience of GraphQL, while having the security from a REST API, limiting clients and visitors to only query the data that you have defined in advance.

You can also create public and private custom endpoints, exposing each of them for some specific target (whether different applications, clients, teams, or other), and have a private endpoint feed data to your custom Gutenberg blocks.

Architectural foundation

Gato GraphQL is optimized for speed: The query is resolved on linear time complexity, and does not suffer the “n+1” problem. The GraphQL schema is generated only the first time, and cached. The response can be cached, using standard HTTP Caching. And installing additional CPTs does not affect the speed of creating the schema.

Gato GraphQL is also fully extensible, so you can create your own extensions and integrations, to extend the GraphQL schema for your own CPTs and plugins.

Gato GraphQL is super configurable, to suit your specific needs, even endpoint by endpoint.

And finally, Gato GraphQL is forward-looking, already providing features that have been proposed for the GraphQL spec but not yet released.

Features

Gato GraphQL provides all these features:

  • Security: Multiple mechanisms are provided to help protect your data.
  • Custom Endpoints: Create and expose multiple custom GraphQL schemas under their own URL, for different users, applications, external services, or other.
  • Persisted Queries: GraphQL queries which are stored in the server and accessed under their own URL, thus emulating a REST endpoint.
  • Predefined Persisted Queries: Tackle admin tasks that are common to WordPress sites, by executing an already-installed persisted query.
  • Public, Private & Password-Protected Endpoints: In addition to creating and exposing public endpoints, create private endpoints, and protect a public endpoint with a password.
  • Internal Endpoint for Blocks: Fetch data for your Gutenberg blocks, via an internal GraphQL endpoint accessible within the wp-admin only.
  • API Hierarchy: Organize endpoints hierarchically, to group and expose related endpoints under a logical structure.
  • Endpoint Management: Organize custom endpoint and persisted queries by assigning them custom categories, similar to posts in WordPress.
  • Schema namespacing: Avoid conflicts in the schema, by having all type names automatically namespaced.
  • Nested mutations: Execute a mutation within a queried entity (similar to accessing a field), and not only on the root type in the GraphQL query.
  • “Sensitive” data: Decide if to expose or not private data in a public API.
  • Global Fields: Common fields added to all types of the GraphQL schema (while being defined only once).
  • Composable directives: Expose directives that augment other directives, modifying their behavior or filling a gap.
  • Multi-Field Directives: Have directives applied to multiple fields (instead of only one), for performance and extended use cases.
  • ‘oneOf’ Input Object: Input object where exactly one of the input fields must be provided as input, or the server returns a validation error.
  • Returning different types on mutations: Mutation fields can be configured to return either a payload object type, or directly the mutated entity.
  • Field and directive-based versioning: Version fields and directives independently from the overall schema.
  • Proactive feedback: Use the top-level entry ‘extensions’ to send data concerning deprecations and warnings in the response to the query.

Go PRO

Unleash your capabilities with Gato GraphQL PRO, which contains all our PRO extensions for Gato GraphQL.

Use Gato GraphQL PRO to:

  • Expose public and private APIs
  • Complement WP-CLI to execute admin tasks
  • Update posts in bulk
  • Search/replace content for site migrations
  • Send an email/notifications when something happens (new post published, new comment added, etc)
  • Synchronize content across sites, or a multisite network
  • Insert or remove Gutenberg blocks in bulk
  • Automatically insert a mandatory block when creating a new post
  • Translate content in the site using the Google Translate API
  • Automatically translate new posts to all different languages in a multisite
  • Generate an image using OpenAI’s DALL-E or Stable Diffusion, and set it as featured image
  • Send new posts to Facebook, Instagram, LinkedIn, or other social media platforms
  • Import a post from another WordPress site
  • Import all posts from a JSON or CSV file (including from Google Sheets)
  • Export all posts to a JSON or CSV file
  • Import a post from an RSS feed
  • Create posts from static html files
  • Interact with cloud services via an HTTP client
  • Convert the data from a 3rd-party API into the required format
  • Call external APIs to validate your data
  • Automate tasks and content workflows when some event happens (eg: wp_insert_post), like Zapier for WordPress
  • Use WP-Cron to regularly execute GraphQL queries
  • And much more…

Gato GraphQL PRO can help you simplify your tech stack, handling the functionality from multiple plugins (so you need to install fewer plugins in your site, and remove bloat), including:

  • ✅ APIs
  • ✅ Automator
  • ✅ Bulk editing/Post duplicator
  • ✅ Code snippets
  • ✅ Content distribution
  • ✅ Email notifications
  • ✅ HTTP client
  • ✅ Import/export
  • ✅ Search & replace
  • ✅ Translation
  • ✅ Webhooks

As new extensions are created, they are added to Gato GraphQL PRO.

Gato GraphQL PRO clients have access to all product updates and premium support, and can ask the Gato GraphQL team to work on integrations with popular WordPress plugins.

Features

Gato GraphQL PRO provides all these features:

  • Enhanced security: Additional mechanisms to help protect that your data is safe, accessible only to the intended targets.
  • Automation: Automatically execute a GraphQL Persisted Query when some event happens on the site, creating automations via a user interface.
  • Access Control: Avoid visitors accessing private data from your site, by granting granular access to the schema, based on the user being logged-in or not, having a certain role or capability, and more.
  • Public/Private Schema: Control the desired behavior when a user without access to some field or directive in the schema attempts to access it.
  • HTTP Caching: Cache the GraphQL response via standard HTTP caching, with the max-age value automatically calculated.
  • Integrations with 3rd-party plugins: Extend the GraphQL schema to access data from popular WordPress plugins.
  • Field Deprecation via UI: Deprecate fields on the GraphQL schema by using a user interface, without the need to deploy any code.
  • Multiple Query Execution: Combine multiple queries into a single one, share state across them, and execute it in only one request.
  • Field to Input: Obtain the value of a field, manipulate it, and input it into another field, all within the same query.
  • Function Fields: Expose functionalities commonly found in programming languages (such as PHP) via GraphQL fields.
  • Function Directives: Expose functionalities commonly found in programming languages (such as PHP) via GraphQL directives.
  • Helper Fields: Set of fields added to the schema, providing commonly-used helper functionality.
  • Environment Fields: In your GraphQL document, query a value from an environment variable, or from a PHP constant.
  • HTTP Client: Execute HTTP requests against a webserver and fetch their response.
  • Schema Editing Access: Grant non-admin users access to the clients in the admin, and access to editing the GraphQL schema and its configuration.

Source code

Gato GraphQL is open source, under the GPLv2 license.

The source code for the plugin is in GitHub repo GatoGraphQL/GatoGraphQL.

The JavaScript source code for the blocks is under layers/GatoGraphQLForWP/plugins/gatographql/blocks.


Screenshots
FAQ
ChangeLog