انواع داده‌ها در GraphQL

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

انواع داده‌ها در GraphQL

در GraphQL هر داده‌ای که از سرور دریافت می‌کنیم یا ارسال می‌کنیم، یک نوع مشخص دارد. انواع داده‌ها به ما کمک می‌کنند بفهمیم چه چیزی معتبر است و چگونه می‌توانیم اطلاعات را به‌صورت سازمان‌دهی شده درخواست کنیم. در این درس با پنج نوع داده مهم آشنا می‌شویم: Scalar، Enum، List، Non-Null و Input Type.

1. Scalar Type (نوع پایه)
Scalar ساده‌ترین نوع داده است و یک مقدار واحد را نگه می‌دارد. GraphQL چند Scalar از پیش تعریف‌شده دارد:

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

این نوع داده‌ها پایه‌ای‌ترین بلوک‌ها برای ساخت داده‌های پیچیده‌تر هستند.

2. Enum Type (نوع شمارشی)
Enum مجموعه‌ای از مقادیر مشخص است که فقط یکی از آن‌ها می‌تواند استفاده شود. مثلاً وضعیت یک سفارش می‌تواند فقط یکی از PENDING، SHIPPED یا DELIVERED باشد:

enum OrderStatus {
  PENDING
  SHIPPED
  DELIVERED
}

استفاده از Enum باعث می‌شود خطا کاهش یابد و مقادیر نادرست وارد نشوند.

3. List (لیست)
List نوعی داده است که مجموعه‌ای از مقادیر یک نوع مشخص را نگه می‌دارد. مثلاً اگر یک کاربر چندین پست داشته باشد، می‌توان آن‌ها را در قالب یک لیست دریافت کرد:

type User {
  id: ID!
  name: String!
  posts: [Post]
}

در این مثال، فیلد posts یک لیست از Postها است.

4. Non-Null (عدم تهی بودن)
Non-Null مشخص می‌کند که مقدار یک فیلد نمی‌تواند تهی باشد. این کار باعث اطمینان از صحت داده‌ها می‌شود و با علامت ! نمایش داده می‌شود:

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

در این مثال، فیلدهای id و name همیشه باید مقدار داشته باشند، اما email می‌تواند خالی باشد.

5. Input Type (نوع ورودی)
Input Type برای مشخص کردن ساختار داده‌هایی استفاده می‌شود که کاربر هنگام ارسال اطلاعات می‌خواهد استفاده کند. برای مثال، فرض کنید می‌خواهیم اطلاعات یک کاربر جدید را ارسال کنیم:

input CreateUserInput {
  name: String!
  email: String!
  age: Int
}

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

جمع‌بندی

نوع داده کاربرد مثال ساده
Scalar مقدار ساده و پایه‌ای Int, String, Boolean
Enum مقدار محدود و از پیش تعیین‌شده OrderStatus: PENDING, SHIPPED
List مجموعه‌ای از مقادیر یک نوع [Post]
Non-Null مقدار فیلد نمی‌تواند خالی باشد ID!, String!
Input Type تعریف ساختار داده‌های ورودی CreateUserInput

با درک این انواع داده، می‌توانید داده‌های ساده و پیچیده را به‌صورت ساختاریافته در GraphQL شناسایی و استفاده کنید، بدون نیاز به دانستن جزئیات پیشرفته‌تر در این مرحله.

ثبت دیدگاه


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

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


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