آشنایی با Query، Mutation و Subscription در GraphQL
در GraphQL برای کار با دادهها سه مفهوم اصلی وجود دارد که باید با آنها آشنا شویم: Query، Mutation و Subscription. این مفاهیم به ما کمک میکنند بدانیم چگونه دادهها را دریافت کنیم، تغییر دهیم یا تغییرات را دنبال کنیم.
1. Query (درخواست داده)
Query به معنی درخواست داده است و شبیه به GET در REST عمل میکند. با استفاده از Query میتوانیم اطلاعات مورد نیاز خود را از سرور دریافت کنیم و دقیقاً مشخص کنیم کدام فیلدها را میخواهیم. این کار باعث میشود دادههای اضافی ارسال نشود و سرعت بارگذاری بالا رود.
مثال ساده دریافت اطلاعات کاربران:
{
users {
id
name
email
}
}
در این مثال، ما فیلدهای id
، name
و email
همه کاربران را درخواست کردهایم.
2. Mutation (تغییر داده)
Mutation برای ایجاد، تغییر یا حذف دادهها استفاده میشود و شبیه به POST، PUT یا DELETE در REST است. زمانی که میخواهیم اطلاعاتی را در سرور ذخیره کنیم یا تغییر دهیم، از Mutation استفاده میکنیم.
مثال ایجاد یک کاربر جدید:
mutation {
createUser(input: {name: "Ali", email: "ali@example.com"}) {
id
name
email
}
}
در این مثال، ما دادههای کاربر جدید را به سرور میفرستیم و سرور پس از ایجاد کاربر، همان اطلاعات را به ما برمیگرداند.
3. Subscription (دریافت تغییرات بهصورت زنده)
Subscription برای دریافت تغییرات دادهها بهصورت زنده استفاده میشود. این ویژگی مشابه دریافت اعلانها یا پیامهای جدید در یک اپلیکیشن چت است. با استفاده از Subscription، کلاینت میتواند بهصورت خودکار از تغییرات مطلع شود بدون آنکه دوباره درخواست ارسال کند.
مثال دریافت پیامهای جدید در یک چت:
subscription {
newMessage {
id
content
sender
}
}
هر زمان که پیام جدیدی ارسال شود، سرور آن را برای کلاینت میفرستد و نمایش داده میشود.
جمعبندی
مفهوم | کاربرد | مثال ساده |
---|---|---|
Query | دریافت دادهها از سرور | { users { id, name, email } } |
Mutation | ایجاد یا تغییر دادهها | createUser(name: "Ali", email: "ali@example.com") |
Subscription | دریافت تغییرات بهصورت زنده | newMessage { id, content, sender } |
با درک این سه مفهوم، شما میتوانید در مراحل بعدی پرسوجوهای خود را طراحی کنید، دادهها را دریافت و تغییر دهید و حتی تغییرات زنده را در اپلیکیشنهای خود نمایش دهید.