أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
مقدمة
يوضّح هذا الموضوع كيفية إضافة تطبيق Node.js إلى خادم وكيل حالي على نظام الملفات المحلي وكيفية نشر خادم الوكيل على Apigee Edge.
إعداد بيئة التطوير
في هذا الموضوع، نفترض أنّ لديك بيئة تطوير وكيل تم إعدادها على نظامك المحلي وأنّك تريد دمج تطبيق Node.js فيها.
يتّبع البنية الأساسية لتطبيق وكيل يتضمّن تطبيق Node.js النمط
الموضّح في الشكل أدناه، مع مجلد أساسي /apiproxy
ومجلدات فرعية للموارد والأهداف والوكلاء. يجب وضع ملفات Node.js في المجلد apiproxy/resources/node. تحتوي المجلدات الأخرى على ملفات XML تحدّد نقاط النهاية الوكيلة والمستهدَفة، وتدفق الوكيل، والتدفقات الشرطية، وما إلى ذلك. للحصول على وصف أكثر اكتمالاً لبنية خادم وكيل واجهة برمجة التطبيقات، راجِع مرجع إعداد خادم وكيل واجهة برمجة التطبيقات.

تذكَّر فقط أنّه يجب وضع أي رمز Node.js يشكّل جزءًا من الخادم الوكيل ضمن /apiproxy/resources/node. هذا هو المكان الذي يتوقّع Edge العثور عليه فيه عند نشره.
تحديد إصدار Node.js المستهدَف باستخدام ScriptTarget
مفتاح دمج Node.js في خادم وكيل هو تحديد العنصر <ScriptTarget> في ملف XML الخاص بنقطة النهاية المستهدَفة. في بنية ملف الخادم الوكيل، يقع ملف XML هذا في apiproxy/targets. يكون اسم الملف تلقائيًا default.xml.
للحصول على السياق، ضع في اعتبارك أنّ نقطة النهاية المستهدَفة تشير عادةً إلى خدمة خلفية من نوع ما. في هذه الحالة، نصل إلى خدمة الهدف الوهمي في Apigee. يبدو تعريف نقطة النهاية المستهدَفة على النحو التالي:
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
يحدّد العنصر <HTTPTargetConnection> عنوان URL للخدمة الخلفية، أي خدمة الهدف الوهمي في Apigee.
ومع ذلك، في حالة Node.js، يكون تطبيق Node.js نفسه هو الهدف. يمكنك تحديد ذلك باستخدام <ScriptTarget> في الملف apiproxy/targets/default.xml.
بدلاً من أن يستخدم الهدف العنصر <HTTPTargetConnection> لتحديد عنوان URL لخدمة خلفية، تتم الإشارة إلى تطبيق Node.js مباشرةً باستخدام العنصر <ScriptTarget>، كما يلي:
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
يجب أن تكون المَعلمة <ResourceURL> مسبوقة دائمًا بـ node://،
يليها اسم النص البرمجي الرئيسي Node.js. وكما ذكرنا سابقًا، يجب أن تكون موارد Node.js متوفّرة في /apiproxy/resources/node على مستوى نطاق خادم وكيل API.
يمكنك ضبط مَعلمات إضافية في ScriptTarget. للحصول على التفاصيل، يُرجى الاطّلاع على الإعداد المتقدّم لـ ScriptTarget.
لغرض هذا المثال، إليك الرمز المصدر لملف Node.js الرئيسي، والذي يُطلق عليه اسم server.js. هذا هو خادم HTTP الأساسي الذي يعرض "Hello World!" عند تلقّي طلب:
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
باختصار، بافتراض أنّ تطبيق main Node.js يتم تنفيذه في ملف باسم server.js، وأنّ إعدادات نقطة النهاية تحمل الاسم default.xml، سيكون لبوابة API التي تحتوي على نص Node.js البنية التالية:
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
الاستعداد لنشر التطبيق
تحتوي معظم تطبيقات Node.js على ملفات تابعة وتتضمّن ملف package.json في الدليل الأساسي. في هذه الحالة، من أفضل الممارسات تشغيل أداة npm للتأكّد من ملء دليل node_modules ذي المستوى الأعلى بالملفات التابعة قبل النشر. إذا كانت هناك أي تبعيات عن بُعد غير مضمّنة في node_modules، لن يتم تشغيل تطبيق Node.js على Edge.
يمكنك بسهولة استرداد جميع التبعيات إلى نظام الملفات باستخدام أداة npm:
- من الدليل الأساسي لتطبيق Node.js، نفِّذ ما يلي:
$ npm install
أو
$ npm update
بعد تثبيت التبعيات، تصبح جاهزًا لنشر الخادم الوكيل على Edge.
نشر تطبيق Node.js على Apigee Edge
قبل النشر، عليك معرفة اسم مؤسستك واسم المستخدم وكلمة المرور لحسابك على Apigee Edge. تحتاج إلى هذه المعلومات لتكوين أمر أداة النشر بشكل صحيح.
إليك الأمر. يفترض (باستخدام العلامة -d) أنّك في دليل الجذر الخاص بالخادم الوكيل. إذا كان اسم الخادم الوكيل foo، أدخِل الأمر التالي من الدليل foo:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
للحصول على ملخّص سريع:
- -n يتيح لك هذا الخيار تحديد اسم الخادم الوكيل الذي سيتم إنشاؤه عند نشر التطبيق. سيظهر هذا الاسم في واجهة مستخدم الإدارة.
- -d تحدّد هذه السمة الدليل الجذر لخادم وكيل واجهة برمجة التطبيقات.
- تحدّد الخيارات -o و-e و-u و-p اسم المؤسسة وبيئة النشر واسم المستخدم وكلمة المرور.
اختبار خادم وكيل واجهة برمجة التطبيقات الجديد
لقد أضفت للتو تطبيق Node.js إلى خادم وكيل حالي لواجهة برمجة التطبيقات ونشرت الخادم الوكيل على Apigee Edge. لاختبارها، شغِّل أمر cURL هذا. نفترض أنّه يتم استخدام مسار الأساس التلقائي (/) (يتم تحديد مسار الأساس في ملف إعداد نقطة نهاية الخادم الوكيل). احرص على استبدال org_name باسم مؤسستك. إذا لم يكن cURL مثبّتًا، يمكنك إدخال عنوان URL في المتصفّح.
$ curl http://org_name-test.apigee.net/
Hello, Node!
عرض الخادم الوكيل الجديد في واجهة المستخدم الإدارية
سجِّل الدخول إلى حسابك على Apigee Edge وانتقِل إلى صفحة "خوادم وكيل واجهة برمجة التطبيقات". سيظهر لك الخادم الوكيل باسم "hellonode" في تلك القائمة.

انقر على "hellonode" للاطّلاع على تفاصيل حول الخادم الوكيل. في طريقة عرض "التطوير"، يمكنك الاطّلاع على رمز المصدر الذي حمّلته وإضافة سياسات وتعديل التدفقات وغير ذلك.

الخطوات التالية
للحصول على معلومات حول تصحيح أخطاء تطبيقات Node.js التي تعمل على Apigee Edge وتحديد المشاكل وحلّها، يُرجى الاطّلاع على تصحيح أخطاء خوادم وكيل Node.js وتحديد المشاكل وحلّها.