افزودن Node.js به پراکسی API موجود

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

مقدمه

این موضوع توضیح می‌دهد که چگونه برنامه Node.js را به پراکسی موجود در سیستم فایل محلی‌تان اضافه کنید و چگونه پراکسی را در Apigee Edge مستقر کنید.

درحال آماده‌سازی محیط توسعه

در این موضوع، فرض می‌کنیم که ازقبل محیط توسعه نیابتی را در سیستم محلی خود راه‌اندازی کرده‌اید و می‌خواهید برنامه Node.js را در آن ادغام کنید.

ساختار پایه برنامه پراکسی که شامل برنامه Node.js است از الگوی نشان‌داده‌شده در شکل زیر پیروی می‌کند، با پوشه پایه /apiproxy و پوشه‌های فرعی برای منابع، هدف‌ها، و پراکسی‌ها. فایل‌های Node.js باید در پوشه apiproxy/resources/node قرار داده شوند. پوشه‌های دیگر حاوی فایل‌های XML هستند که نقاط پایانی هدف و پراکسی، جریان پراکسی، جریان‌های شرطی، و غیره را تعریف می‌کنند. برای شرح کامل‌تر ساختار پراکسی API، مرجع پیکربندی پراکسی API را ببینید.

فقط به‌یاد داشته باشید که هر کد 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> نشانی وب سرویس زیرینه، سرویس هدف ساختگی Apigee را مشخص می‌کند.

بااین‌حال، در مورد Node.js، برنامه Node.js خودش هدف است. این را با <ScriptTarget> در فایل apiproxy/targets/default.xml مشخص می‌کنید.

به‌جای اینکه هدف از عنصر <HTTPTargetConnection> برای مشخص کردن نشانی وب سرویس کارساز استفاده کند، برنامه 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 پایه است که وقتی درخواستی دریافت می‌کند «سلام دنیا!» را برمی‌گرداند:

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 شما در یک پراکسی API پیچیده شده است، در Edge مستقر شده است، و اجرا می‌شود. این درانتظار درخواست‌ها است و آماده آزمایش شدن است.

آزمایش کردن پراکسی جدید میانای برنامه‌سازی کاربردی

به‌تازگی برنامه Node.js را به پراکسی API موجود اضافه کرده‌اید و پراکسی را در Apigee Edge مستقر کرده‌اید! برای آزمایش کردن آن، این فرمان cURL را اجرا کنید. فرض می‌کنیم از مسیر پایه پیش‌فرض (/) استفاده شده است (مسیر پایه در فایل پیکربندی نقطه پایانی پراکسی مشخص شده است). حتماً نام سازمانتان را به‌جای org_name جایگزین کنید. اگر cURL نصب نشده است، می‌توانید نشانی وب را در مرورگر وارد کنید.

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

دیدن پراکسی جدید در واسط کاربر مدیریت

وارد سیستم حساب Apigee Edge خود شوید و به صفحه «پراکسی‌های API» بروید. کارگزار وکیلی به‌نام «hellonode» را در آنجا خواهید دید.

برای مشاهده جزئیات مربوط به پراکسی، روی «hellonode» کلیک کنید. در نمای «توسعه»، می‌توانید کد منبعی را که بارگذاری کرده‌اید ببینید، خط‌مشی اضافه کنید، جاری‌سازی‌ها را ویرایش کنید، و غیره.

مراحل بعدی

برای کسب اطلاعات درباره اشکال‌زدایی برنامه‌های Node.js که در Apigee Edge اجرا می‌شوند، به اشکال‌زدایی و عیب‌یابی پراکسی‌های Node.js مراجعه کنید.