Hasura GraphQL is a powerful open-source engine that allows developers to quickly build and deploy GraphQL APIs. It offers a variety of features that simplify the process of building and scaling GraphQL APIs, such as automatic schema generation, real-time subscriptions, and role-based access control. In this blog post, we will dive into the details of Hasura GraphQL and explore its features and benefits.

Features of Hasura GraphQL

Automatic schema generation

        Hasura GraphQL automatically generates a GraphQL schema based on the database schema. This means that developers don't have to spend time manually defining the schema, reducing development time and effort. Hasura GraphQL supports a variety of databases, including PostgreSQL, MySQL, and SQL Server.

Real-time subscriptions

        Hasura GraphQL supports real-time subscriptions, allowing clients to receive updates in real-time as the data changes. This is a powerful feature that enables developers to build applications with real-time data, such as chat applications, real-time analytics dashboards, and more.

Role-based access control

        Hasura GraphQL supports role-based access control, which allows developers to define roles and permissions for different users or user groups. This is an essential feature for applications that require granular access control, such as applications that store sensitive data.

Custom business logic

        Hasura GraphQL allows developers to write custom business logic in JavaScript or TypeScript using the Hasura Actions API. This feature enables developers to extend the functionality of their APIs and implement custom workflows and business rules.

Integration with external APIs

        Hasura GraphQL can be integrated with external APIs using remote schemas. This allows developers to combine data from multiple sources and expose them as a single GraphQL API.

Authentication and authorization

        Hasura GraphQL supports a variety of authentication and authorization mechanisms, including JWT, OAuth2, and custom authentication. This makes it easy to secure your API and ensure that only authorized users can access the data.

Getting started with Hasura GraphQL

        To get started with Hasura GraphQL, you'll need to install the Hasura CLI and create a new project. Here's how to do it:

Step 1: Install the Hasura CLI

        You can install the Hasura CLI using npm by running the following command:

npm install -g hasura-cli

Step 2: Create a new project

        To create a new Hasura project, run the following command:

hasura init my-project

        This will create a new directory called my-project with the basic structure of a Hasura project.

Step 3: Set up the database

        Next, you'll need to set up your database. Hasura GraphQL supports a variety of databases, including PostgreSQL, MySQL, and SQL Server. To set up your database, run the following command:

hasura migrate apply

        This will apply the database migrations and create the necessary tables and relationships.

Step 4: Create the GraphQL schema

        Hasura GraphQL automatically generates a GraphQL schema based on the database schema. However, you can also define custom types and queries using the graphql directory. Create a new file called schema.graphql in the graphql directory and define your types and queries.

Step 5: Start the Hasura GraphQL engine

        To start the Hasura GraphQL engine, run the following command:

hasura console

        This will open the Hasura console in your default web browser. From there, you can explore your API and execute GraphQL queries and mutations.

Conclusion

            Hasura GraphQL is a powerful open-source engine that simplifies the process of building and scaling GraphQL APIs. Its features, such as automatic schema generation, real-time subscriptions, and role-based access control, make it a popular choice for developers building modern applications.