Skip to main content

Schema

The TakeShape schema is the core of every TakeShape project. It uses a set of objects, properties, and concepts to enable complex functionality like data transformation pipelines, multi-step query resolution, and external data storage. From a single schema JSON file, we generate an entire GraphQL API.

The schema enables mixing together Types and API requests between multiple GraphQL or REST services, allowing you to design a single API endpoint that meshes together the various distributed and decoupled services your business or app relies upon.

Specification#

We've also prepared a detailed specification of the schema's contents and concepts. Check out our Schema Spec Reference for the full details.

Schema Management#

While the schema file is already extremely powerful, all if its functionality is not yet available in an easy to use GUI (we're working on it!). To really get the most out of it, you'll need to dive into the file and edit it directly.

Since the schema is a single JSON file, it's straight forward to export, modify, and import into a project. Check out our guide on Exporting and importing the schema to learn how with our CLI or API. Beyond modifying you schema, you can use this to make backups, power CI workflows, and other automated functionality.

We also expose API endpoints for managing your schema, including maintaining a complete version history with support for exporting and restoring unique versions. Check out our guide on Viewing and restoring schema versions to learn more, and dive in to our complete Schema API Reference if you want to go even deeper.

Guides#

Finally, we've created guides for common actions you might want to take on a schema file, including:

  • Working with Shapes
  • Working with Queries & Mutations
  • Adding GraphQL services, shapes, and queries
  • Adding REST services, shapes, and queries
  • Adding Shopify services, shapes, and queries
  • Future Work

And we've got more in the works!

  • Adding more services—let us know which services you'd like to see TakeShape support
  • Enabling more schema features in our UI
  • Community contributed schemas and services
  • If there's a specific task you need help with, let us know and we can help you get it done.

We're excited to release this core functionality out into the world and see the amazing APIs you're able to build with it. Join the discussion and inform the design of schema features in the TakeShape developer community on Slack, or send us direct feedback using the chat tool in the bottom corner of the page.