مفاهیم اصلی Schema ,Type ,Field, Argument

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/06/23
  • تعداد بازدید: 2

مفاهیم اصلی در GraphQL

چهار مفهوم اصلی Schema، Type، Field و Argument هسته مرکزی GraphQL را تشکیل می‌دهند. این مفاهیم مشخص می‌کنند که API چگونه طراحی می‌شود و کلاینت‌ها به چه شکلی داده‌های مورد نیاز خود را دریافت می‌کنند.

Schema (طرحواره)
Schema همان نقشه یا قرارداد کلی GraphQL است. این ساختار مشخص می‌کند که چه نوع داده‌هایی موجود هستند، چه پرس‌وجوها (Query) یا تغییراتی (Mutation) می‌توان انجام داد و هر داده چه ویژگی‌هایی دارد. بدون Schema هیچ پرس‌وجویی در GraphQL معتبر نخواهد بود. برای نمونه، اگر بخواهیم سیستمی برای مدیریت کاربران و پست‌ها داشته باشیم، می‌توانیم چنین Schemaای تعریف کنیم:

type User {
  id: ID!
  name: String!
  email: String!
}

type Post {
  id: ID!
  title: String!
  content: String!
  author: User!
}

type Query {
  users: [User]
  posts: [Post]
}

در اینجا Schema مشخص کرده است که چه Typeهایی وجود دارند و پرس‌وجوها از چه طریقی انجام می‌شوند.

Type (نوع داده)
Typeها ساختار اصلی داده‌ها را تعریف می‌کنند. هر Type شامل مجموعه‌ای از Fieldهاست. GraphQL چند نوع پایه‌ای (Scalar Type) دارد:

نوع توضیح مثال
Int عدد صحیح 32 بیتی 42
Float عدد اعشاری 3.14
String رشته متنی "Hello"
Boolean مقدار درست یا نادرست true
ID شناسه یکتا (اغلب رشته یا عدد) "usr_123"

علاوه بر این‌ها، می‌توان Typeهای سفارشی مانند User یا Post تعریف کرد.

Field (فیلد)
Fieldها خصوصیات یک Type را نشان می‌دهند. در Type User، فیلدهای name و email ویژگی‌های کاربر هستند. زمانی که کلاینت پرس‌وجو می‌فرستد، باید دقیقاً فیلدهای مورد نیازش را مشخص کند. برای مثال:

{
  users {
    id
    name
  }
}

در این پرس‌وجو فقط id و name برگردانده می‌شود و فیلد email نادیده گرفته خواهد شد.

Argument (آرگومان)
Argumentها ورودی‌هایی هستند که به پرس‌وجو یا Mutation داده می‌شوند تا خروجی دقیق‌تر شود. فرض کنید می‌خواهیم فقط یک کاربر خاص را بر اساس شناسه‌اش دریافت کنیم:

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

در اینجا آرگومان id: 1 مشخص می‌کند که فقط کاربری با شناسه ۱ برگردانده شود. همچنین آرگومان‌ها می‌توانند برای فیلتر کردن لیست‌ها، مرتب‌سازی یا محدود کردن نتایج نیز استفاده شوند.

جمع‌بندی مفاهیم

مفهوم کارکرد نمونه
Schema نقشه کلی API تعریف User و Post و Queryها
Type ساختار داده‌ها User { id, name, email }
Field خصوصیات یک Type name و email در User
Argument ورودی برای پرس‌وجوها user(id: 1)

این چهار مفهوم در کنار هم پایه و اساس طراحی و کار با GraphQL را شکل می‌دهند و بدون درک آن‌ها، امکان ساخت یا استفاده مؤثر از GraphQL وجود ندارد.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.