تخطَّ إلى المحتوى

المتغيرات

لتجنب الترميز الثابت لجميع القيم عند العمل مع GraphQL، يوفر API Explorer قسم المتغيرات حيث يمكن إضافة كائن JSON. تتوفر المفاتيح ذات المستوى الأعلى لكائن JSON كمتغيرات لها أسماء مُشار إليها بعلامة الدولار ($KEY_NAME). هذا يتيح تجربة تطوير أكثر متعة عند كتابة واختبار الاستعلامات والتحولات والاشتراكات الديناميكية.

query MyQuery1 ($domain: String) {
students(
filter: {
email: {
contains: $domain
}
}
) {
items {
id
firstName
email
}
}
}
{
"domain": "example.com"
}

alt text

قد تحتاج بعض المدخلات الديناميكية إلى إضافتها عند إرسال طلب إلى خادم GraphQL الخاص بك، بينما يظل مستند العملية كما هو. هذه هي متغيرات العملية الخاصة بك. يجب أن تكون المتغيرات معاملات مُحددة النوع يتم التصريح عنها في عملية GraphQL. نظرًا لأن GraphQL مُحدد النوع بشكل ثابت، يمكن التحقق من صحة ما إذا كنت تمرر المتغيرات الصحيحة.

ستعمل المثالان التاليان معًا للاستعلام عن قائمة المستخدمين ذوي حالة “نشط” والذين تبدأ أسماؤهم بـ “M”.

query MyQuery1($name_start: String, $status: Boolean) {
students(
filter: {
firstName: {
starts_with: $name_start
},
isActive: {
equals: $status
}
}
) {
items {
id
firstName
email
}
}
}
{
"name_start": "M",
"status": true
}

alt text

التصريح عن المتغيرات المُحددة النوع

Section titled “التصريح عن المتغيرات المُحددة النوع”

لا تقتصر المتغيرات على كونها قيم إدخال مفردة. يمكن أن تكون كائنات معقدة بأي نوع مُصرح به في مساحة عمل معينة - أصلي أو مخصص. هذا يسمح بتمرير أشياء مثل الفلاتر الكاملة والفرز وغيرها الكثير ديناميكيًا كمتغيرات.

query MyQuery (
$filter: StudentsFilter
$first: Int
$orderBy: StudentsOrderBy
) {
students(
filter: $filter
first: $first
orderBy: $orderBy
) {
count
items {
id
firstName
lastName
age
}
}
}
{
"filter": {
"email": { "contains": "example" },
"firstName": { "starts_with": "M" }
},
"orderBy": { "lastName": "ASC"},
"first": 2
}

alt text