در آگهی استخدام برنامه نویس منظور از “توانایی کار با GraphQL و RESTful API” چیست؟


این یعنی فرد می‌تونه با سرویس‌هایی که داده‌ها رو از سرور می‌گیرن و می‌فرستن، کار کنه.

  • RESTful API: روش سنتی که با HTTP requestهایی مثل GET, POST, PUT, DELETE کار می‌کنه.
  • GraphQL: روش جدیدتر که با queryها و mutationها کار می‌کنه و به کلاینت اجازه می‌ده دقیقا بگه چه داده‌ای می‌خواد.

یعنی اگه یک بک‌اند (سرور) بهت یک REST یا GraphQL API بده، تو می‌تونی:

  • request بزنی،
  • داده بگیری،
  • اونا رو توی اپ یا سایتت نمایش بدی،
  • و اگه لازم باشه داده بفرستی یا تغییر بدی.



آموزش جامع GraphQL (برای برنامه‌نویسی که با مفاهیم کلی آشناست)

۱. GraphQL چیه؟

GraphQL زبانی برای query زدن به سروره. به جای اینکه چندتا endpoint بسازی (/users, /posts) فقط یک endpoint داری (مثلاً /graphql) و با query دقیقاً می‌گی چه داده‌ای می‌خوای.

مثلاً:

{
  user(id: 1) {
    name
    email
  }
}

پاسخ:

{
  &quotdata&quot: {
    &quotuser&quot: {
      &quotname&quot: &quotAli&quot,
      &quotemail&quot: &quotali@example.com&quot
    }
  }
}



۲. اجزای اصلی GraphQL

  • Query: برای گرفتن داده.
  • Mutation: برای تغییر داده (مثلاً ساخت، آپدیت یا حذف).
  • Subscription: برای دریافت داده‌های real-time (مثلاً چت زنده).



۳. مثال ساده Query

query {
  allPosts {
    id
    title
    author {
      name
    }
  }
}



۴. Mutation مثال

mutation {
  createPost(title: &quotسلام دنیا&quot, content: &quotاولین پست من!&quot) {
    id
    title
  }
}



۵. ابزارهای محبوب کار با GraphQL

  • Apollo Client: برای React و Frontend.
  • GraphQL Playground یا GraphiQL: برای تست queryها.
  • Apollo Server یا GraphQL Yoga: برای ساخت سرور.



۶. چطور استفاده کنی؟

الف. روی فرانت‌اند، کتابخونه‌ای مثل Apollo Client نصب کن:

npm install @apollo/client graphql




ب. یک client بساز:

import { ApolloClient, InMemoryCache } from '@apollo/client';

const client = new ApolloClient({
  uri: 'https://example.com/graphql',
  cache: new InMemoryCache(),
});




ج. یک query اجرا کن:

import { gql } from '@apollo/client';

const GET_USERS = gql`
  query {
    users {
      id
      name
    }
  }
`;

client.query({ query: GET_USERS }).then(response => {
  console.log(response.data);
});



۷. مقایسه GraphQL با REST

GraphQL:

  • یک endpoint
  • فقط داده‌هایی که درخواست کردی
  • کش پیچیده‌تر، معمولاً با کلاینت مدیریت می‌شه




REST:

  • چندین endpoint
  • همیشه کل داده‌ها رو می‌فرسته
  • کش کردن ساده با HTTP



۸. منابع یادگیری

  • graphql.org
  • Apollo GraphQL
  • کانال‌های یوتیوب مثل Academind, Traversy Media



در پست بعدی میخواهم یک مرحله ده قدمی برای یادگیری گراف کیو ال بنویسم. با من همراه باش! منو دنبال کن و در شبکه های اجتماعی اینستاگرام و تلگرام با من همراه شو!

ایدی منو جستجو کن:

seyedahmaddv