التدريب
الوحدة النمطية
بدء استخدام GraphQL في Microsoft Fabric - Training
تعرف على كيفية عمل GraphQL في Microsoft Fabric والمفاهيم الرئيسية والأمثلة العملية لمساعدة المستخدمين على دمج تطبيقاتهم مع GraphQL بشكل فعال كجزء من حلولهم.
لم يعد هذا المتصفح مدعومًا.
بادر بالترقية إلى Microsoft Edge للاستفادة من أحدث الميزات والتحديثات الأمنية والدعم الفني.
ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات
http-data-source
يقوم نهج الحل بتكوين طلب HTTP واستجابة HTTP بشكل اختياري لحل البيانات لنوع عنصر وحقل في مخطط GraphQL. يجب استيراد المخطط إلى API Management كواجهة برمجة تطبيقات GraphQL.
ملاحظة
تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.
<http-data-source>
<http-request>
<get-authorization-context>...get-authorization-context policy configuration...</get-authorization-context>
<set-backend-service>...set-backend-service policy configuration...</set-backend-service>
<set-method>...set-method policy configuration...</set-method>
<set-url>URL</set-url>
<include-fragment>...include-fragment policy configuration...</include-fragment>
<set-header>...set-header policy configuration...</set-header>
<set-body>...set-body policy configuration...</set-body>
<authentication-certificate>...authentication-certificate policy configuration...</authentication-certificate>
</http-request>
<backend>
<forward-request>...forward-request policy configuration...</forward-request>
<http-response>
<set-body>...set-body policy configuration...</set-body>
<xml-to-json>...xml-to-json policy configuration...</xml-to-json>
<find-and-replace>...find-and-replace policy configuration...</find-and-replace>
<publish-event>...publish-event policy configuration...</publish-event>
<include-fragment>...include-fragment policy configuration...</include-fragment>
</http-response>
</http-data-source>
Name | الوصف | مطلوب |
---|---|---|
طلب http | يحدد عنوان URL ونُهُج تابعة لتكوين طلب HTTP الخاص بالمحلل. | نعم |
الواجهة الخلفية | يقوم اختياريا بإعادة توجيه طلب HTTP الخاص بالمحلل إلى خدمة خلفية، إذا تم تحديده. | لا |
استجابة http | يحدد اختيارياً النُهُج التابعة لتكوين استجابة HTTP للمحلل. إذا لم يتم تحديدها، يتم إرجاع الاستجابة كسلسلة أولية. | لا |
ملاحظة
باستثناء الحالات التي تمت ملاحظتها، يمكن تحديد كل عنصر تابع مرة واحدة على الأكثر. حدد العناصر بالترتيب المدرج.
العنصر | الوصف | مطلوب |
---|---|---|
الحصول على سياق التخويل | الحصول على سياق تخويل لطلب HTTP الخاص بالمحلل. | لا |
تعيين خدمة الواجهة الخلفية | يعيد توجيه طلب HTTP الخاص بالمحلل إلى الخلفية المحددة. | لا |
تضمين-جزء | إدراج جزء نهج في تعريف النهج. إذا كانت هناك أجزاء متعددة، فأضف عناصر إضافية include-fragment . |
لا |
أسلوب التعيين | تعيين أسلوب طلب HTTP الخاص بالمحلل. | نعم |
set-url | تعيين عنوان URL لطلب HTTP الخاص بالمحلل. | نعم |
تعيين العنوان | تعيين عنوان في طلب HTTP الخاص بالمحلل. إذا كانت هناك رؤوس متعددة، فأضف عناصر إضافية header . |
لا |
تعيين النص الأساسي | تعيين النص الأساسي في طلب HTTP الخاص بالمحلل. | لا |
شهادة المصادقة | يصادق باستخدام شهادة عميل في طلب HTTP الخاص بالمحلل. | لا |
العنصر | الوصف | مطلوب |
---|---|---|
طلب إعادة التوجيه | إعادة توجيه طلب HTTP الخاص بالمحلل إلى خدمة خلفية مكونة. | لا |
ملاحظة
باستثناء الحالات التي تمت ملاحظتها، يمكن تحديد كل عنصر تابع مرة واحدة على الأكثر. حدد العناصر بالترتيب المدرج.
Name | الوصف | مطلوب |
---|---|---|
تعيين النص الأساسي | تعيين النص الأساسي في استجابة HTTP للمحلل. | لا |
xml إلى json | تحويل استجابة HTTP للمحلل من XML إلى JSON. | لا |
البحث والاستبدال | البحث عن سلسلة فرعية في استجابة HTTP للمحلل واستبدالها بسلاسل فرعية مختلفة. | لا |
نشر الحدث | نشر حدث إلى اشتراك واحد أو أكثر محدد في مخطط واجهة برمجة تطبيقات GraphQL. | لا |
تضمين-جزء | إدراج جزء نهج في تعريف النهج. إذا كانت هناك أجزاء متعددة، فأضف عناصر إضافية include-fragment . |
لا |
يحل المثال التالي استعلاماً عن طريق إجراء استدعاء بروتوكول HTTP GET
إلى مصدر بيانات الخلفية.
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://data.contoso.com/get/users</set-url>
</http-request>
</http-data-source>
يستخدم المثال التالي قالباً سائلاً مدعوماً للاستخدام في النهج set-body، لإرجاع قائمة في استجابة البروتوكول HTTP إلى استعلام. كما أنه يعيد تسمية الحقل username
في الاستجابة من واجهة برمجة تطبيقات REST إلى name
في استجابة GraphQL.
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://data.contoso.com/users</set-url>
</http-request>
<http-response>
<set-body template="liquid">
[
{% JSONArrayFor elem in body %}
{
"name": "{{elem.username}}"
}
{% endJSONArrayFor %}
]
</set-body>
</http-response>
</http-data-source>
يحل المثال التالي تعديلاً يدرج البيانات عن طريق تقديم POST
طلب إلى مصدر بيانات HTTP. يعدل تعبير النهج في النهج set-body
لطلب HTTP وسيطة name
التي يتم تمريرها في الاستعلام GraphQL كنص خاص به. سيبدو النص الذي يتم إرساله مثل صيغة JSON التالية:
{
"name": "the-provided-name"
}
type Query {
users: [User]
}
type Mutation {
makeUser(name: String!): User
}
type User {
id: String!
name: String!
}
<http-data-source>
<http-request>
<set-method>POST</set-method>
<set-url>https://data.contoso.com/user/create </set-url>
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
var args = context.GraphQL.Arguments;
JObject jsonObject = new JObject();
jsonObject.Add("name", args["name"])
return jsonObject.ToString();
}</set-body>
</http-request>
</http-data-source>
يحل orderById
المثال التالي الاستعلام عن طريق إجراء استدعاء HTTP GET
إلى مصدر بيانات الواجهة الخلفية وإرجاع كائن JSON يتضمن معرف العميل ونوعه. نوع العميل هو اتحاد أنواع RegisteredCustomer
و GuestCustomer
.
type Query {
orderById(orderId: Int): Order
}
type Order {
customerId: Int!
orderId: Int!
customer: Customer
}
enum AccountType {
Registered
Guest
}
union Customer = RegisteredCustomer | GuestCustomer
type RegisteredCustomer {
accountType: AccountType!
customerId: Int!
customerGuid: String!
firstName: String!
lastName: String!
isActive: Boolean!
}
type GuestCustomer {
accountType: AccountType!
firstName: String!
lastName: String!
}
على سبيل المثال، نحن نسخر نتائج العميل من مصدر خارجي، والرمز الثابت النتائج التي تم جلبها في النهج set-body
. __typename
يتم استخدام الحقل لتحديد نوع العميل.
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://data.contoso.com/orders/</set-url>
</http-request>
<http-response>
<set-body>{"customerId": 12345, "accountType": "Registered", "__typename": "RegisteredCustomer" }
</set-body>
</http-response>
</http-data-source>
لمزيد من المعلومات حول العمل مع النُهج، راجع:
التدريب
الوحدة النمطية
بدء استخدام GraphQL في Microsoft Fabric - Training
تعرف على كيفية عمل GraphQL في Microsoft Fabric والمفاهيم الرئيسية والأمثلة العملية لمساعدة المستخدمين على دمج تطبيقاتهم مع GraphQL بشكل فعال كجزء من حلولهم.