تنفيذ واجهة برمجة تطبيقات مخصصة لخدمة REST ذات مروحة
عند تطوير تطبيق نقال، فعادة ما تبدأ بطبقة واجهة المستخدم أولاً، ثم تقوم بتوصيل تطبيقك بتطبيق آخر باستخدام خدمات ويب REST. يعمل هذا الأسلوب بشكل جيد للتطبيقات الصغيرة أو البسيطة. عندما تكون التطبيقات أكبر، وترغب في الاتصال بخدمات خلفية متعددة، يمكنك تقديم مشكلات تتعلق بالأداء والتأمين دون قصد.
يعد هذا الإجراء أفضل الممارسات لبدء إنشاء طبقة واجهة API متعددة الأجزاء بين الخدمات الخلفية الخارجية وواجهة المستخدم لتقليل عدد الاستدعاءات إلى خدمات الخلفية متى أمكن ذلك. على سبيل المثال، يمكن لتطبيق الجوال تنفيذ استدعاء فردي لطبقة واجهة برمجة تطبيقات fa - ade، وهي تعالج الاستدعاءات المؤدية إلى خدمات REST الأخرى، كما يقوم بتجميع كل البيانات الواردة في استجابة واحدة للتطبيق النقال.
تكوين API مفصل تام
لتكوين واجهة برمجة تطبيقات مخصصة كاملة باستخدام Oracle Mobile Hub.
انقر على وحدد التطوير ثم واجهات api من القائمة الجانبية. إذا كان API قد تم تكوينه بالفعل (سواء كان في حالة مسودة أو منشور)، فسترى قائمة بواجهات API. إذا لم تكن هناك واجهات API مخصصة، فسترى صفحة ذات زر واجهة API جديدة. انقر API الذي قمت بتكوينه بالفعل أو انقر API جديد للبدء
تحديد نقاط الانتهاء
يتم تكوين الموارد لتحديد نقاط النهاية الخاصة بـ API. المورد هو crux الخاص بوسيط API. فهي تشتمل على نوع، وبعض البيانات المقترنة به، وعلاقة بالموارد الأخرى، وتشتمل على طريقة أو أكثر تتعامل معها. يمكن أن يكون المورد أي شيء تقريبًا: صورة أو ملف نصي أو مجموعة من الموارد الأخرى أو حركة اعتبارية أو إجراء، إلخ.
عند تكوين أسلوب لمورد، يظهر رمز لهذا الأسلوب أسفل ارتباط "الأساليب". ويمكنك رؤية الأساليب المعرفة لمورد على الفور إذا أردت فحص تعريف مورد. انقر على أيقونة للانتقال مباشرة إلى تعريف الأسلوب هذا.
يمكنك مسح التكدس لتحديد موقع مورد بشكل سريع عن طريق التبديل إلى وضع مضغوط (إلى يسار مورد جديد). تخفي العرض المضغوط وصف المورد ونوع المورد والمسار.
إضافة طرق إلى الموارد
الأساليب هي الإجراءات التي يمكن تنفيذها على المورد. تعرض صفحة "الأساليب" أسلوبًا واحدًا في المرة. بعد تعريف طريقتين على الأقل، يمكنك النقر على الأيقونة الخاصة بأسلوب في أعلى الصفحة للاطلاع على تفاصيله.
بعد تحديد طرق للمورد، يمكنك تحديد الطلبات والردود لهذه الطرق.
تحديد طلب للطريقة
الآن بعد أن قمت بتحديد أسلوب، قم بتعريف الطلب الذي تقوم بإجراء الخدمة المراد الاتصال به. على سبيل المثال، إذا قمت بتحديد أسلوب POST
، فيمكنك الآن تعريف ما تريد تكوينه. يمكنك القيام بذلك بإضافة المعلمات ونص الطلب الذي يحتوي على وصف البيانات المطلوب إرسالها إلى الخدمة.
- انقر طلب لتحديد طلب.
- انقر على إضافة معلمة وحدد نوع معلمة: استعلام أو رأس. حدد مطلوب إذا كانت المعلمة مطلوبة للأسلوب.
- تبعًا للأسلوب المحدد، انقر على إضافة نوع وسائط وحدد نص الأسلوب. يحتوي النص على البيانات التي تقوم بإرسالها إلى الخادم. على سبيل المثال، إذا كنت تقوم بتعريف أسلوب
POST
، فستحتاج إلى تعريف العنصر الذي تقوم بتكوينه، مثل قائمة عملاء جديدة أو طلب خدمة. إذا كنت تقوم بتحديد أسلوبGET
، فلن تحتاج إلى إرسال نص أسلوب حتى لا تحتاج إلى تحديد نوع وسائط. - انقر إضافة نوع وسائط لإضافة أنواع وسائط إضافية إذا قررت أنك لا ترغب في استخدام الأسلوب، فانقر على X في الترويسة لحذفه.
تحديد استجابة للطريقة
وفقًا للطلب، قد تحتاج أو لا تحتاج إلى استجابة. يوضح الرد عملية إرجاع النتائج من الخدمة. قد ترغب في تحديد رد يتحقق من أن البيانات التي طلبتها تم إرجاعها، أو قد ترغب في رد يقر عما إذا كان قد تم استلام الطلب أم لا. تحديد الرد يشبه تحديد طلب. الاختلاف الرئيسي هو أنك تحتاج إلى تحديد رمز الحالة ليتيح لك معرفة نتيجة الاتصال.
POST
لمورد audits
برمز الحالة 201 يشير إلى أن المورد الجديد قد تم تكوينه بنجاح. كما يعرض المثال صيغة الاستجابة المرجعة application/json
ورأس Location
تمت إضافته ونص الرسالة الذي يشتمل على بيانات mock:responses:
201:
description: |
The request has been fulfilled and resulted in a new resource
being created. The newly created resource can be referenced
by the URI(s)returned in the entity of the response, with the
most specific URI for the resource given by a Location header
field.
headers:
Location:
displayName: Location
description: |
Identifies the location of the newly created resource.
type: string
example: |
/20934
required: true
body:
application/json:
example: |
{
"id": 20934,
"title": "Lynn's Leaking Water Heater",
"contact": {
"name": "Lynn Adams",
"street": "45 O'Connor Street",
"city": "Ottawa",
"postalcode": "a1a1a1",
"username": "johnbeta"
},
"status": "New",
"driveTime": 30,
"priority": "high",
"notes": "My notes",
"createdon": "2014-01-20 23:15:03 EDT",
"imageLink": "storage/collections/2e029813-d1a9-4957-a69a-fbd0d74331d77/objects/6cdaa3a8-097e-49f7--9bd2-88966c45668f?user=lynn1014"
}
عند تحديد الاستجابة، يمكنك اختبار نقاط الانتهاء أو النقر على نقاط الانتهاء في شريط الاستكشاف للعودة إلى صفحة الموارد الرئيسية. ومن هذه الصفحة، يمكنك المتابعة إلى صفحة أخرى في مصمم واجهة برمجة التطبيقات لتكوين بيانات أولية أو أنواع موارد أو نقل، أو إضافة وثائق واجهة برمجة التطبيقات.
إذا قررت عدم رغبتك في الأسلوب، فانقر على X في الترويسة لحذفه.
تكوين واجهة برمجة تطبيقات REST Connector
استخدم معالج واجهة برمجة تطبيقات REST Connector لإنشاء واجهة API للموصل وتكوينها واختبارها.
للحصول على واجهة برمجة تطبيقات (API) لموصل العمل الأساسي، يمكنك إدخال اسم بديل لواجهة برمجة تطبيقات الموصل وعنوان URL للخدمة الخارجية.
ومن هذا الموضع، يمكنك:
-
حدد القواعد لتكوين طلبات أو ردود محددة للبيانات التي تريد الوصول إليها.
-
تكوين أنظمة تأمين جانب العميل للخدمة التي تحاول الوصول إليها.
-
اختبار الاتصال واختبار نتائج المكالمات التي تم إجراؤها على الاتصال.
يجب تكوين واجهة برمجة تطبيقات (API) مخصصة والتنفيذ لتمكين التطبيقات من استدعاء واجهات API للموصل وإنشاء واجهة برمجة التطبيقات والتنفيذ تلقائيًا. إذا أردت القيام بذلك يدويًا، يجب تكوين API مخصص بالموارد المناسبة، ثم تنفيذ الرمز المخصص.
إعداد موصل أساسي
يمكنك تكوين موصل وظيفي من خلال إكمال أول صفحتين في معالج واجهة برمجة تطبيقات REST Connector.
-
انقر على
وحدد التطوير ثم واجهات api من القائمة الجانبية.
-
انقر على REST (إذا كانت واجهة API للموصل الأولى المطلوب تكوينها) أو موصل جديد ومن القائمة المنسدلة، حدد REST.
-
حدد واجهة API لموصل REST الجديد عبر توفير ما يلي:
-
اسم عرض API: الاسم الذي سيظهر في قائمة واجهات API للموصل.
-
اسم واجهة برمجة التطبيقات: الاسم الفريد لواجهة برمجة تطبيقات الموصل الخاصة بك.
بشكل افتراضي، يتم إلحاق هذا الاسم بمعرف URI الأساسي النسبي كاسم مورد لواجهة API للموصل. يمكن رؤية معرف URI الأساسي أسفل حقل اسم API.
بخلاف الإصدار الجديد لواجهة برمجة تطبيقات الموصل هذه، لا يمكن أن تشتمل واجهة برمجة تطبيقات الموصل الأخرى على نفس اسم المورد.
-
الوصف المختصر: سيتم عرض هذا الوصف في صفحة "الموصلات" عند تحديد واجهة API هذه.
-
-
انقر على تكوين.
-
في الصفحة عام من مربع الحوار REST Connector API، قم بتعيين قيم انتهاء الوقت:
-
انتهاء وقت قراءة HTTP: الحد الأقصى للوقت (بالمللي ثانية) الذي يمكن إنفاقه في انتظار قراءة البيانات. إذا لم توفر قيمة، فسيتم تطبيق القيمة الافتراضية 20 ثانية.
-
انتهاء وقت اتصال HTTP: الوقت (بالمللي ثانية) المنقضي في الاتصال بعنوان URL البعيد. تعني القيمة 0 mms انتهاء وقت لا نهائي.
يجب أن تكون قيم انتهاء وقت HTTP أقل من نظام
Network_HttpRequestTimeout
، والذي يشتمل على القيمة الافتراضية 40,000 مللي ثانية.ملاحظة:
إذا كان لديك دور مسئول الخدمة السحابية للأجهزة المتنقلة بالإضافة إلى دور مطور الخدمة، فيمكنك فتح ملفpolicies.properties
للاطلاع على قيمة أنظمة الشبكة للبيئة الحالية من طريقة عرض المسئول. وإلا، فاطلب من مسئول الخدمة السحابية للنقال القيم.
-
-
انقر على الواصف، وأدخل معلومات الاتصال الخاصة بالخدمة.
إذا قمت بتقديم عنوان URL لواصف Swagger، يتم تحديد وعرض الموارد المتاحة، ويمكنك اختيار الموارد التي تريدها.
ملاحظة:
لا يتم دعم سوى منافذ الوصول القياسية عبر الإنترنت 80 و443. لا يمكن الاتصال بخدمة باستخدام منفذ مخصص. -
انقر على حفظ.
-
(اختياري) انقر على اختبار وحدد صلاحيات التصديق وقم بإجراء استدعاءات الاختبار للخدمة.
ومن هذا الموضع، يمكنك تكوين الموصل بالطرق التالية:
-
(في حالة إدخال واصف في صفحة الواصف) انتقل إلى صفحة الموارد وحدد طرق الموارد المعروضة.
-
تحديد القواعد.
-
تعيين أنظمة التأمين.
للتأكد من صلاحية تكوين واجهة برمجة تطبيقات الموصل، يجب عليك اختباره بدقة (وليس فقط من صفحة اختبار واجهة برمجة تطبيقات الموصل) قبل نشرها. أي أنه يجب أيضًا اختبار واجهة برمجة التطبيقات المخصصة (مع تنفيذها) التي تستخدم واجهة برمجة تطبيقات الموصل هذه. بشكل أساسي، إذا كنت مستعد لنشر واجهة API للموصل، فيجب أن تكون مستعدًا أيضًا لنشر واجهة API المخصصة التي تستدعيها.
إعداد القواعد
يمكنك تعيين قواعد لتعريف التفاعلات بين تطبيق الجوال وخدمة. توفر القواعد طريقة لإضافة قيم معلمات افتراضية لجميع الاستدعاءات إلى الموارد في الخدمة واستدعاءات مسار بروكسي محدد واستدعاءات لأنواع معينة من العمليات (الأفعال). يساعد ذلك على فرض الصياغة المتسقة لسلسلة عنوان URL، وحفظ مطور التعليمات البرمجية المخصص الذي يجب عليه إدراج هذه القيم، مع إمكانية تعقب الاستدعاءات المختلفة من خلال التحليلات.
يمكنك تكوين قاعدة أو أكثر. يمكن أن تشتمل كل قاعدة على معلمة واحدة أو أكثر من النوع Query
وHeader
.
في حالة عدم تطبيق قواعد، يتم تمرير كل الاستدعاءات من خلال البروكسي إلى الخدمة الحالية.
يظهر وصف القاعدة التي قمت بتعريفها للتو في ترويسة القاعدة مباشرة فوق قسم المعلمات الافتراضية. على سبيل المثال، فلنفترض أنه تم توفير القيم التالية:
-
عنوان URL البعيد =
https://maps.googleapis.com/maps/api/directions
/json?origin=los+angeles&destination=seattle
-
معرف URI المحلي =
myMapAPI
-
القاعدة بالمعلمة التالية:
Query:key:A3FAEAJ903022
-
أساليب
GET
وPUT
HTTP
تتم قراءة وصف القاعدة على النحو التالي:
GET
إلى https://maps.googleapis.com/maps/api/directions/json?origin=los+angeles&destination=seattle
متاح في myMapAPI/directions
، يتضمن Query:key=A3FAEAJ903022
.
في حالة عدم تكوين قواعد، تتم قراءة الوصف:
بالنسبة إلى ALL METHODS to https://maps.googleapis.com/maps/api/directions
متاح في myMapAPI
، لن يتم تطبيق أية معلمات افتراضية.
يوجد لديك الآن معرف URI أساسي يشير تخطيطه للخدمة الحالية. باستخدام المثال التالي:
mobile/connector/myMapAPI/directions/json?origin=los+angeles&destination=seattle
تخطيط إلى https://maps.googleapis.com/maps/api/directions/json?origin=los+angeles&destination=seattle
تكوين أنظمة التأمين وخصائص التجاوز
يشتمل كل نظام تأمين على خصائص، يُطلق عليها عمليات تجاوز، يمكنك تكوينها. أحد الأسباب لتجاوز خاصية تكوين النظام هو تحديد عدد الأنظمة التي يلزم صيانتها: بدلاً من تكوين أنظمة متعددة بتكوينات متنوعة بشكل طفيف، يمكن استخدام نفس النظام العام وتجاوز قيم محددة لتلبية متطلباتك.
لتحديد نظام تأمين وتعيين تجاوزات النظام: