تنفيذ واجهة API مخصصة لخدمة REST فاريس
عند تطوير تطبيق نقال ، تبدأ عادة بطبقة واجهة المستخدم أولاً ، ثم توصيل التطبيق بتطبيق آخر باستخدام خدمات ويب REST. يعمل هذا الأسلوب بصورة جيدة للتطبيقات الصغيرة أو البسيطة. عندما تكون التطبيقات أكبر حجمًا وكنت ترغب في الاتصال بالعديد من الخدمات الخلفية ، فيمكنك تقديم مشكلات تتعلق بالأداء والتأمين دون قصد.
ويعتبر من أفضل الممارسات اللازمة لبدء إنشاء طبقة واجهة API لأكبر عدد من الخدمات الخلفية الخارجية وواجهة المستخدم لتقليل عدد الاتصالات إلى الخدمات الخلفية كلما أمكن ذلك. على سبيل المثال ، يمكن لتطبيق النقال تنفيذ استدعاء واحد لطبقة fa API التي تعالج استدعاءات خدمات REST الأخرى ، كما يدمج جميع البيانات الواردة في استجابة واحدة لتطبيقك النقال.
تكوين API مفصل كامل
لتكوين واجهة برمجة تطبيقات مخصصة كاملة باستخدام Oracle Mobile Hub.
انقر على وحدد التطوير ثم واجهات api من القائمة الجانبية. إذا كان API قد تم تكوينه بالفعل (سواء كان في حالة مسودة أو منشور)، فسترى قائمة بواجهات API. إذا لم تكن هناك واجهات API مخصصة، فسترى صفحة ذات زر واجهة API جديدة. انقر API الذي قمت بتكوينه بالفعل أو انقر API جديد للبدء
تحديد نقاط النهاية
يتم تكوين الموارد لتحديد نقاط النهاية لواجهة برمجة التطبيقات (API) الخاصة بك. المورد هو قص واجهة برمجة التطبيقات. وتحتوي على نوع ، بعض البيانات المرتبطة به ، وعلاقة بموارد أخرى ، كما أنها تحتوي على طريقة واحدة أو أكثر تعمل عليها. يمكن أن يكون المورد على الفور أي شيء: صورة أو ملف نص أو مجموعة موارد أخرى أو عملية منطقية أو إجراء ، إلخ.
عند تكوين أسلوب لمورد ، يظهر رمز لذلك الأسلوب أسفل ارتباط الأساليب. ويمكن أن ترى على الفور الأساليب المعرفة لمورد إذا كنت بحاجة إلى فحص تعريف مورد. انقر على أيقونة للانتقال مباشرة إلى تعريف الأسلوب.
يمكنك مسح قيم clutter لتحديد موقع مورد بسرعة أكبر عن طريق التبديل إلى وضع الضغط (وهو على يسار المورد الجديد). يقوم العرض المضغوط بإخفاء وصف المورد ونوع المورد والمسار.
إضافة طرق لموارد خاصة بك
الأساليب هي الإجراءات التي يمكن تنفيذها على مورد. تعرض صفحة "الأساليب" طريقة واحدة في كل مرة. بعد تعريف أسلوبين على الأقل ، يمكنك النقر على الأيقونة الخاصة بأسلوب أعلى الصفحة للاطلاع على تفاصيله.
بعد تحديد طرق للمورد ، يمكنك تحديد طلبات وردود لهذه الطرق.
تحديد طلب للأسلوب
الآن بعد أن قمت بتحديد طريقة ، قم بتعريف طلب الخدمة الذي تقوم بالاتصال به. على سبيل المثال ، إذا قمت بتحديد أسلوب 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"
}
عند تحديد الرد ، يمكنك تحديد نقاط النهاية أو نقر نقاط النهاية في شريط التنقل للعودة إلى صفحة الموارد الرئيسية. ومن هذا الموضع ، يمكنك المتابعة إلى صفحة أخرى في مصمم API لتكوين جذر أو أنواع موارد أو سمات أو إضافة وثائق API.
إذا قررت أنك لا تريد الأسلوب ، فانقر على X في الترويسة لحذفه.
تكوين API موصل REST
استخدم معالج API الخاص بموصل REST لتكوين واجهة API للموصل وتكوينه واختبارها.
للحصول على واجهة API لموصل العمل الأساسي ، يمكنك إدخال اسم لواجهة API الخاصة بالموصل وعنوان URL للخدمة الخارجية.
ومن هناك ، يمكنك:
-
حدد القواعد لتكوين طلبات أو ردود محددة للبيانات التي تريد الوصول إليها.
-
تكوين سياسات سرية في جانب العميل للخدمة التي تقوم بالوصول إليها.
-
اختبار الاتصال واختبار نتائج المكالمات التي تم إجراؤها للاتصال.
يجب تكوين واجهة API مخصصة وتنفيذها لتمكين التطبيقات من استدعاء واجهات API الخاصة بالموصل ، وإنشاء واجهة API والتنفيذ تلقائيًا. إذا كنت تريد القيام بذلك يدويًا ، فيجب تكوين واجهة API مخصصة بالموارد المناسبة ، ثم تنفيذ التعليمات البرمجية المخصصة.
إعداد موصل أساسي
يمكنك تكوين موصل وظيفي من خلال إكمال أول صفحتين في معالج API موصل REST.
-
انقر على
وحدد التطوير ثم واجهات api من القائمة الجانبية.
-
انقر على REST (إذا كان ذلك هو واجهة API للموصل الأول المطلوب تكوينها) أو موصل جديد ومن القائمة المنسدلة ، حدد REST.
-
حدد واجهة برمجة التطبيقات لموصل REST الجديد عبر إدخال ما يلي:
-
اسم عرض API: الاسم كما سيظهر في قائمة واجهات API للموصل.
-
اسم API: الاسم الفريد لواجهة API للموصل الخاص بك.
بشكل افتراضي ، يتم إلحاق هذا الاسم بمعرف URI الأساسي ذي الصلة كاسم المورد لواجهة API الخاصة بالموصل. يمكنك رؤية معرف URI الأساسي أسفل حقل اسم API .
بخلاف إصدار جديد من واجهة API للموصل ، لا يمكن أن يشتمل أي واجهة API لموصل أخرى على نفس اسم المورد.
-
الوصف القصير: سيتم عرض هذا الوصف في صفحة الموصلات عند تحديد API هذا.
-
-
انقر على تكوين.
-
في صفحة عام بمربع حوار واجهة برمجة تطبيقات موصل REST ، قم بتعيين قيم انتهاء الوقت:
-
انتهاء وقت قراءة HTTP: الحد الأقصى للوقت (بالمللي ثانية) الذي يمكن قضاؤه في انتظار قراءة البيانات. في حالة عدم إدخال قيمة ، يتم تطبيق القيمة الافتراضية 20 ثانية.
-
انتهاء وقت اتصال HTTP: الوقت المنقضي (بالمللي ثانية) في الاتصال بعنوان URL البعيد. تعني القيمة 0mms أنه غير مسموح بانتهاء الوقت غير المحدود.
يجب أن تكون قيم انتهاء وقت HTTP أقل من نظام
Network_HttpRequestTimeout
، والذي يشتمل على قيمة افتراضية تبلغ 40,000 مللي ثانية.ملاحظة:
إذا كان لديك دور مسئول سحابة محمول بالإضافة إلى دور مطور الخدمة ، فيمكنك فتح ملفpolicies.properties
للاطلاع على قيمة أنظمة الشبكة للبيئة الحالية من طريقة عرض "المسئول ". وإلا ، فاطلب من مسئول سحابة الجوال لديك بالنسبة للقيم.
-
-
انقر على الواصف ، وأدخل معلومات الاتصال الخاصة بالخدمة.
إذا قمت بتوفير عنوان URL لواصف Swagger، فسيتم تعريف الموارد المتاحة وعرضها ، ويمكنك تحديد الموارد التي تريدها.
ملاحظة:
منافذ الوصول القياسية عبر الإنترنت 80 و 443 هي المدعومة فقط. لا يمكن إجراء الاتصال بخدمة باستخدام منفذ مخصص. -
انقر على حفظ.
-
(اختياري) انقر على اختبار وحدد صلاحيات التصديق وقم بإجراء استدعاءات اختبار إلى الخدمة.
ومن هذا الموضع ، يمكنك تكوين الموصل بالطرق التالية بشكل أكثر:
-
(في حالة إدخال خاصية في صفحة الواصف) انتقل إلى صفحة الموارد ، وحدد الطرق الخاصة بالموارد المعروضة.
-
تحديد القواعد.
-
تعيين أنظمة التأمين.
للتأكد من صلاحية تكوين واجهة API للموصل ، يجب اختباره بشكل كامل (ليس فقط من صفحة اختبار واجهة API للموصل) قبل نشره. أي أنه ، يجب أيضًا اختبار واجهة API المخصصة (مع تنفيذها) التي تستخدم واجهة API الخاصة بالموصل. بشكل أساسي ، إذا كنت جاهزًا لنشر واجهة 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
.
في حالة عدم تكوين قواعد ، فستتم قراءة الوصف:
بالنسبة لكل الأساليب إلى 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
تكوين سياسات السرية وخصائص التجاوز
يشتمل كل نظام تأمين على خصائص ، تسمى التجاوزات ، ويمكنك تكوينها. أحد أسباب تجاوز خاصية تكوين النظام هو تحديد عدد الأنظمة التي ترغب في الاحتفاظ بها: بدلاً من تكوين عدة أنظمة ذات تكوينات مختلفة قليلة ، يمكنك استخدام نفس النظام العام وتجاوز قيم محددة لتلبية متطلباتك.
لتحديد نظام تأمين وتعيين تجاوزات النظام: