إضافة Node.js إلى خادم وكيل حالي لواجهة برمجة التطبيقات

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

مقدمة

يشرح هذا الموضوع كيفية إضافة تطبيق Node.js إلى خادم وكيل حالي على ملفك المحلي. وكيفية نشر الخادم الوكيل في Apigee Edge.

جارٍ إعداد بيئة التطوير

في هذا الموضوع، نفترض أن لديك بيئة تطوير خادم وكيل تم إعدادها على ودمج تطبيق Node.js فيه.

تتبع البنية الأساسية لتطبيق الخادم الوكيل الذي يتضمن تطبيق Node.js النمط كما هو موضح في الشكل أدناه، مع قاعدة /apiproxy المجلدات والمجلدات الفرعية للموارد والأهداف والخوادم الوكيلة. مجلد apiproxy/resources/node هو المكان الذي يجب وضع ملفات Node.js فيه . وتحتوي المجلدات الأخرى على ملفات 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 نفسه هو الهدف. يمكنك تحديد ذلك باستخدام &lt;ScriptTarget&gt; في ملف 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 على نطاق الخادم الوكيل لواجهة برمجة التطبيقات.

يمكنك ضبط مَعلمات إضافية في 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');
});

للتلخيص، بافتراض أن تطبيق Node.js الرئيسي تم تنفيذه في ملف تسمى server.js، وأن تكوينات نقطة النهاية هي كلاهما باسم default.xml، فإن خادم وكيل واجهة برمجة التطبيقات الذي يحتوي على ويحتوي نص 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:

  1. من الدليل الأساسي لتطبيق 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 داخل خادم وكيل لواجهة برمجة التطبيقات، ويتم نشره على Edge ويتم تنفيذه. أُنشأها جون هنتر، الذي كان متخصصًا ينتظر الطلبات وهو جاهز للاختبار.

اختبار الخادم الوكيل الجديد لواجهة برمجة التطبيقات

لقد أضفت للتو تطبيق Node.js إلى خادم وكيل حالي لواجهة برمجة التطبيقات ونشرت الخادم الوكيل في Apigee. حافة! لاختباره، يُرجى تشغيل الأمر cURL هذا. نفترض أنّه تم استخدام المسار الأساسي التلقائي (/) (المسار الأساسي). محدد في ملف إعداد نقطة نهاية الخادم الوكيل). تأكَّد من استبدال مؤسستك. اسم org_name. إذا لم تثبيت cURL، يمكنك إدخال عنوان URL في متصفح.

$ curl http://org_name-test.apigee.net/
Hello, Node!

عرض الخادم الوكيل الجديد في واجهة مستخدم الإدارة

سجِّل الدخول إلى حسابك على Apigee Edge وانتقِل إلى صفحة الخوادم الوكيلة لواجهة برمجة التطبيقات. سترى الخادم الوكيل باسم "hellonode" التي تم إدراجها هناك.

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

الخطوات التالية

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