Examples

Crystal GraphQL API

Building a GraphQL API

Crystal GraphQL API with graphql-crystal supports typed queries.

Introduction to GraphQL in Crystal

GraphQL is a query language for APIs and a runtime for executing those queries with your existing data. Crystal, known for its speed and efficiency, can be used to create robust GraphQL APIs. In this guide, we will explore how to use the graphql-crystal shard to build a GraphQL API that supports typed queries.

Setting Up Your Crystal Project

To get started, ensure you have Crystal installed on your system. Create a new Crystal project by running the following command:

Navigate to your project directory and add the graphql-crystal shard to your shard.yml file:

Install the shard by running:

Defining a GraphQL Schema

In GraphQL, a schema is a description of your data model. It defines the types of data you can query and the relationships between them. Create a new file schema.cr and define a simple schema with a QueryType:

Creating a GraphQL Server

Next, we need to set up a server to handle incoming GraphQL requests. We will use kemal, a simple web framework for Crystal. First, add kemal to your shard.yml:

Install the new dependency:

Create a new file server.cr and set up your GraphQL server:

Testing Your GraphQL API

With your server running, you can now test your GraphQL API. Use a tool like Insomnia or Postman to send a POST request to http://localhost:3000/graphql with the following query:

If everything is set up correctly, you should receive the following JSON response:

Conclusion

Congratulations! You've successfully set up a basic GraphQL API using Crystal and graphql-crystal. This setup provides a foundation for more complex queries and mutations, allowing you to build powerful and efficient APIs.

Previous
REST API