تنفيذ واجهة برمجة تطبيقات مخصصة لخدمة REST للواجهة
عند تطوير تطبيق هاتف محمول، تبدأ عادةً بطبقة واجهة المستخدم أولاً، ثم تقوم بتوصيل التطبيق بتطبيق آخر باستخدام خدمات ويب REST. يعمل هذا النهج بشكل جيد للتطبيقات الصغيرة أو البسيطة. عندما تكون التطبيقات أكبر، وتريد الاتصال بالعديد من الخدمات الخلفية، يمكنك عرض مشكلات الأداء والأمان عن غير قصد.
من أفضل الممارسات البدء في إنشاء طبقة واجهة برمجة تطبيقات بين خدمات الواجهة الخلفية الخارجية وواجهة المستخدم لتقليل عدد المكالمات إلى خدمات الواجهة الخلفية كلما أمكن ذلك. على سبيل المثال، يمكن لتطبيق الأجهزة المتنقلة الخاص بك تنفيذ استدعاء واحد لطبقة واجهة برمجة التطبيقات (API) التي تعالج الاستدعاءات إلى خدمات REST الأخرى، وتدمج كل البيانات الواردة في استجابة واحدة لتطبيق الأجهزة المتنقلة الخاص بك.
تكوين API مخصص كامل
لتكوين واجهة برمجة تطبيقات مخصصة كاملة باستخدام Oracle Mobile Hub.
انقر على وحدد تطوير، ثم واجهات برمجة التطبيقات من القائمة الجانبية. إذا تم تكوين واجهة برمجة تطبيقات بالفعل (سواء في حالة مسودة أو منشور)، فسترى قائمة بواجهات برمجة التطبيقات. في حالة عدم وجود واجهات برمجة تطبيقات مخصصة، سترى صفحة تحتوي على زر واجهة برمجة تطبيقات جديدة. انقر على واجهة برمجة التطبيقات التي قمت بتكوينها بالفعل، أو انقر على واجهة برمجة تطبيقات جديدة للبدء.
تحديد نقاط الانتهاء
يمكنك تكوين موارد لتعريف نقاط انتهاء واجهة برمجة التطبيقات. المورد هو جوهر واجهة برمجة التطبيقات. وهو يشتمل على نوع، وبعض البيانات المقترنة به، وعلاقة بموارد أخرى، ويحتوي على أسلوب أو أكثر من الأساليب التي تعمل وفقًا له. يمكن أن يكون المورد أي شيء تقريبًا: صورة، ملف نصي، مجموعة من الموارد الأخرى، معاملة منطقية، إجراء، إلخ.
عند إنشاء أسلوب لمورد، يظهر رمز لذلك الأسلوب أسفل ارتباط الأساليب. يمكنك على الفور معرفة الأساليب المحددة للمورد إذا كنت بحاجة إلى فحص تعريف مورد. انقر على أيقونة للانتقال مباشرة إلى تعريف الأسلوب هذا.
يمكنك مسح الفوضى لتحديد موقع المورد بسرعة أكبر من خلال التبديل إلى الوضع المضغوط (على يمين مورد جديد). تخفي الشاشة المدمجة وصف المورد ونوع المورد والمسار.
إضافة أساليب إلى مواردك
الأساليب هي إجراءات يمكن تنفيذها على مورد. تعرض لك صفحة "الأساليب" أسلوبًا واحدًا في كل مرة. بعد تعريف طريقتين على الأقل، يمكنك النقر على الأيقونة الخاصة بأسلوب في أعلى الصفحة للاطلاع على تفاصيله.
بعد تعريف أساليب المورد، يمكنك تعريف الطلبات والاستجابات لهذه الأساليب.
تعريف طلب للأسلوب
بعد تحديد أسلوب، حدد الطلب الذي تقوم به من الخدمة التي تريد الاتصال بها. على سبيل المثال، إذا قمت بتحديد أسلوب POST
، فيمكنك الآن تعريف ما تريد تكوينه. يمكنك القيام بذلك عن طريق إضافة معلمات ونص طلب، والذي يحتوي على وصف البيانات المطلوب إرسالها إلى الخدمة.
- انقر على طلب لتحديد طلب.
- انقر على إضافة معلمة وحدد نوع المعلمة: استعلام أو رأس. حدد مطلوب إذا كانت المعلمة مطلوبة للأسلوب.
- اعتمادًا على الأسلوب الذي حددته، انقر على إضافة نوع وسائط وحدد نص الأسلوب. يحتوي النص على البيانات التي تقوم بإرسالها إلى الخادم. على سبيل المثال، إذا كنت تقوم بتحديد طريقة
POST
، فستحتاج إلى تحديد الصنف الذي تقوم بتكوينه، مثل قائمة عملاء جديدة أو طلب خدمة. إذا كنت تقوم بتعريف أسلوبGET
، فلن تحتاج إلى إرسال نص أسلوب حتى لا تحتاج إلى تحديد نوع وسائط. - انقر على إضافة نوع وسائط لإضافة أنواع وسائط إضافية. إذا قررت أنك لا تريد الأسلوب، فانقر على X في الترويسة لحذفه.
تحديد استجابة للطريقة
بناءً على الطلب، قد تحتاج أو لا تحتاج إلى استجابة. توضح الاستجابة عملية إرجاع النتائج من الخدمة. قد ترغب في تعريف استجابة تتحقق من أن البيانات التي طلبتها قد تم إرجاعها، أو قد ترغب في الحصول على استجابة تقر بما إذا كان قد تم استلام الطلب أم لا. تعريف استجابة يشبه تعريف طلب. الفرق الرئيسي هو أنك ستحتاج إلى تحديد رمز الحالة لإعلامك بنتيجة الاتصال.
POST
الخاص بمورد audits
برمز حالة 201 يشير إلى تكوين مورد جديد بنجاح. كما يعرض المثال صيغة رد الإرجاع وهي application/json
ورأس Location
الذي تمت إضافته ونص الرسالة الذي يحتوي على بيانات وهمية: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 في الترويسة لحذفه.
تكوين واجهة API لموصل REST
استخدم معالج واجهة API لموصل REST لتكوين واجهة API للموصل وتكوينها واختبارها.
للحصول على واجهة API لموصل العمل الأساسي، يمكنك توفير اسم لواجهة API للموصل وعنوان URL للخدمة الخارجية.
من هناك، يمكنك:
-
حدد قواعد لتكوين طلبات أو استجابات محددة للبيانات التي تريد الوصول إليها.
-
تكوين نُهج أمان من جانب العميل للخدمة التي تقوم بالوصول إليها.
-
اختبر الاتصال واختبر نتائج المكالمات التي تم إجراؤها على الاتصال.
يجب تكوين واجهة برمجة تطبيقات وتنفيذ مخصصة لتمكين تطبيقاتك من استدعاء واجهات برمجة تطبيقات الموصل وإنشاء واجهة برمجة التطبيقات والتنفيذ تلقائيًا. إذا كنت تريد القيام بذلك يدويًا، فيجب إنشاء واجهة برمجة تطبيقات مخصصة بالموارد المناسبة، ثم تنفيذ الرمز المخصص.
إعداد موصل أساسي
يمكنك تكوين موصل فعال عن طريق إكمال الصفحتين الأوليين في معالج الواجهة البرمجية للتطبيق لموصل REST.
-
انقر على
وحدد تطوير، ثم واجهات برمجة التطبيقات من القائمة الجانبية.
-
انقر على REST (إذا كان هذا أول واجهة API للموصل يتم تكوينها) أو موصل جديد ومن القائمة المنسدلة، حدد REST.
-
حدد الواجهة البرمجية للتطبيق لموصل REST الجديد من خلال توفير ما يلي:
-
اسم عرض واجهة برمجة التطبيقات: الاسم كما سيظهر في قائمة واجهات برمجة تطبيقات الموصل.
-
اسم واجهة برمجة التطبيقات: الاسم الفريد لواجهة برمجة تطبيقات الموصل.
افتراضيًا، يتم إلحاق هذا الاسم بمعرف URI الأساسي النسبي كاسم المورد لواجهة API للموصل. يمكنك رؤية معرف URI الأساسي أسفل حقل اسم واجهة برمجة التطبيقات.
بخلاف إصدار جديد من واجهة API للموصل هذا، لا يمكن أن يكون لواجهة API للموصل الآخر نفس اسم المورد.
-
الوصف القصير: سيتم عرض هذا الوصف في صفحة الموصلات عند تحديد API هذا.
-
-
انقر على تكوين.
-
في الصفحة "عام" بمربع الحوار "واجهة برمجة تطبيقات موصل REST"، قم بتعيين قيم انتهاء الوقت:
-
انتهاء وقت قراءة HTTP: الحد الأقصى للوقت (بالمللي ثانية) الذي يمكن إنفاقه في انتظار قراءة البيانات. في حالة عدم إدخال قيمة، يتم تطبيق القيمة الافتراضية 20 ثانية.
-
انتهاء وقت اتصال HTTP: الوقت (بالمللي ثانية) المستغرق في الاتصال بعنوان URL البعيد. تعني القيمة 0 مللي ثانية أنه مسموح بانتهاء الوقت اللانهائي.
يجب أن تكون قيم انتهاء وقت HTTP أقل من سياسة
Network_HttpRequestTimeout
، والتي تشتمل على قيمة افتراضية تبلغ 40000 مللي ثانية.ملاحظة:
إذا كان لديك دور مسئول سحابة متنقلة بالإضافة إلى دور مطور الخدمة، فيمكنك فتح ملفpolicies.properties
للاطلاع على قيمة سياسات الشبكة للبيئة الحالية من خلال طريقة عرض "المسئول". وإلا، فاطلب من مسئول سحابة الأجهزة المتنقلة معرفة القيم.
-
-
انقر على الواصف، وأدخل معلومات الاتصال الخاصة بالخدمة.
إذا قمت بإدخال عنوان URL لواصف Swagger، فسيتم تعريف الموارد المتاحة وعرضها، ويمكنك تحديد الموارد التي تريدها.
ملاحظة:
يتم دعم منافذ الوصول القياسية إلى الإنترنت 80 و443 فقط. لا يمكن إجراء اتصال بخدمة باستخدام منفذ مخصص. -
انقر على حفظ.
-
(اختياري) انقر على اختبار، وحدد بيانات صلاحية التصديق، وقم بإجراء استدعاءات اختبار للخدمة.
من هناك، يمكنك تكوين الموصل بالطرق التالية:
-
(إذا قمت بإدخال واصف في صفحة الواصف) انتقل إلى صفحة الموارد، وحدد أساليب الموارد المعروضة.
-
تعريف القواعد.
-
تعيين سياسات التأمين.
للتأكد من صلاحية تكوين واجهة API للموصل، يجب اختباره بدقة (ليس فقط من صفحة اختبار واجهة API للموصل) قبل نشره. بمعنى أنه يجب أيضًا اختبار واجهة برمجة التطبيقات (API) المخصصة (مع تنفيذها) التي تستخدم واجهة برمجة تطبيقات الموصل هذه. بشكل أساسي، إذا كنت مستعدًا لنشر واجهة برمجة تطبيقات الموصل، فيجب أن تكون مستعدًا أيضًا لنشر واجهة برمجة التطبيقات المخصصة التي تستدعيها.
تعيين القواعد
يمكنك تعيين القواعد لتحديد التفاعلات بين تطبيق الأجهزة المتنقلة والخدمة. توفر لك القواعد طريقة لإضافة قيم معلمات افتراضية لجميع الاستدعاءات إلى الموارد الموجودة في الخدمة، والاستدعاءات إلى مسار وكيل محدد، والاستدعاءات لأنواع معينة من العمليات (verbs). يساعد ذلك على فرض صياغة متسقة لسلسلة عنوان 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
.
في حالة عدم تكوين قواعد، سيكون الوصف كما يلي:
بالنسبة لجميع الطرق إلى 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
تكوين سياسات التأمين وخصائص التجاوز
يحتوي كل نهج أمان على خصائص، تسمى التجاوزات، يمكنك تكوينها. أحد أسباب تجاوز خاصية تكوين السياسة هو الحد من عدد السياسات التي يتعين عليك صيانتها: بدلاً من إنشاء سياسات متعددة بتكوينات متنوعة قليلاً، يمكنك استخدام نفس السياسة العامة وتجاوز قيم محددة لتلبية متطلباتك.
لتحديد نهج أمان وتعيين تجاوزات النهج: