مقدمه ای بر Hasura و GraphQL
GraphQL یک زبان کوئری برای API ها و یک ران تایم برای اجرای این کوئری ها با استفاده از داده های موجود شما است. GraphQL به کلاینت ها اجازه می دهد تا دقیقا داده هایی را که نیاز دارند درخواست کنند و هیچ داده اضافی دریافت نکنند. Hasura یک موتور GraphQL است که به شما امکان می دهد API های GraphQL را بر روی دیتابیس های موجود خود (مانند PostgreSQL، MySQL، SQL Server) ایجاد کنید.
برای شروع کار با Hasura، ابتدا باید آن را نصب کنید. Hasura را می توان به روش های مختلفی نصب کرد، از جمله استفاده از Docker، Heroku، و Kubernetes. در این آموزش، از Docker استفاده خواهیم کرد.
version: '3.6'
services:
postgres:
image: postgres:12
restart: always
ports:
- "5432:5432"
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: mysecretpassword
graphql-engine:
image: hasura/graphql-engine:v2.29.0
ports:
- "8080:8080"
depends_on:
- "postgres"
restart: always
environment:
HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:mysecretpassword@postgres:5432/postgres
HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:
db_data:
docker-compose up -d
پس از راه اندازی Hasura، باید مدل های داده خود را تعریف کنید. مدل های داده، ساختار داده هایی را که در API خود استفاده خواهید کرد، تعریف می کنند. برای مثال، اگر در حال ساخت یک API برای یک وبلاگ هستید، ممکن است یک مدل داده برای پست ها و یک مدل داده برای نظرات داشته باشید.
Hasura بر اساس دیتابیس شما کار می کند. برای شروع، باید جداول دیتابیس خود را ایجاد کنید. از طریق کنسول Hasura (در `http://localhost:8080`) می توانید جداول را به صورت گرافیکی ایجاد کنید، یا از طریق SQL.
به عنوان مثال، برای ایجاد جدول `posts`:
بعد از ایجاد جدول، باید آن را در Hasura "ردیابی" کنید تا Hasura بتواند API های GraphQL را برای آن تولید کند. در کنسول Hasura، در بخش "Data"، روی جدول `posts` کلیک کنید و سپس روی دکمه "Track Table" کلیک کنید.
پس از تعریف مدل های داده، می توانید کوئری و میوتیشن های GraphQL را برای دسترسی به داده ها و ایجاد تغییرات در آنها ایجاد کنید. کوئری ها برای بازیابی داده ها و میوتیشن ها برای ایجاد، به روز رسانی و حذف داده ها استفاده می شوند.
برای مثال، برای بازیابی تمام پست ها، می توانید از کوئری زیر استفاده کنید:
query {
posts {
id
title
content
created_at
}
}
این کوئری تمام فیلدهای جدول `posts` را برمی گرداند. شما می توانید فیلدهای خاصی را درخواست کنید تا حجم داده های منتقل شده را کاهش دهید.
برای مثال، برای ایجاد یک پست جدید، می توانید از میوتیشن زیر استفاده کنید:
mutation {
insert_posts_one(object: {title: "My New Post", content: "This is the content of my new post"}) {
id
title
}
}
این میوتیشن یک پست جدید با عنوان "My New Post" و محتوای "This is the content of my new post" ایجاد می کند. میوتیشن، `id` و `title` پست جدید را برمی گرداند.
Hasura از احراز هویت و مجوز برای کنترل دسترسی به API های شما پشتیبانی می کند. شما می توانید از روش های مختلفی برای احراز هویت استفاده کنید، از جمله JSON Web Tokens (JWT) و Webhooks.
برای استفاده از JWT، باید یک سرور احراز هویت ایجاد کنید که JWT ها را تولید کند. سپس، Hasura را پیکربندی کنید تا JWT ها را تأیید کند و بر اساس اطلاعات موجود در JWT، دسترسی به داده ها را کنترل کند.
Hasura یک موتور GraphQL است که به شما امکان می دهد API های GraphQL را بر روی دیتابیس های موجود خود ایجاد کنید.
GraphQL یک زبان کوئری برای API ها و یک ران تایم برای اجرای این کوئری ها با استفاده از داده های موجود شما است.
Hasura را می توان به روش های مختلفی نصب کرد، از جمله استفاده از Docker، Heroku، و Kubernetes.
مدل های داده، ساختار داده هایی را که در API خود استفاده خواهید کرد، تعریف می کنند. شما می توانید مدل های داده را با ایجاد جداول در دیتابیس خود تعریف کنید.
کوئری ها برای بازیابی داده ها و میوتیشن ها برای ایجاد، به روز رسانی و حذف داده ها استفاده می شوند. شما می توانید کوئری و میوتیشن های GraphQL را با استفاده از زبان GraphQL ایجاد کنید.
آیا به کمک برای توسعه API با Hasura و GraphQL نیاز دارید؟ همین حالا با ما تماس بگیرید!
09190994063 - 09376846692
سئو سایت خود را به ما بسپارید و شاهد رشد کسب و کارتان باشید!