Menambahkan Node.js ke proxy API yang ada

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Pengantar

Topik ini menjelaskan cara menambahkan aplikasi Node.js ke proxy yang ada di sistem file lokal Anda dan cara men-deploy proxy ke Apigee Edge.

Menyiapkan lingkungan pengembangan Anda

Dalam topik ini, kami asumsikan Anda sudah menyiapkan lingkungan pengembangan proxy di sistem lokal dan Anda ingin mengintegrasikan aplikasi Node.js ke dalamnya.

Struktur dasar aplikasi proxy yang menyertakan aplikasi Node.js mengikuti pola yang ditunjukkan pada gambar di bawah, dengan folder /apiproxy dasar dan subfolder untuk resource, target, dan proxy. Folder apiproxy/resources/node adalah tempat file Node.js harus ditempatkan. Folder lainnya berisi file XML yang menentukan endpoint proxy dan target, alur proxy, alur kondisional, dan sebagainya. Untuk deskripsi struktur proxy API yang lebih lengkap, lihat referensi konfigurasi proxy API.

Ingatlah bahwa setiap kode Node.js yang merupakan bagian dari proxy harus ditempatkan di /apiproxy/resources/node. Di sinilah Edge mengharapkan untuk menemukannya saat di-deploy.

Menentukan target Node.js dengan ScriptTarget

Kunci untuk mengintegrasikan Node.js ke dalam proxy adalah menentukan elemen <ScriptTarget> dalam file XML endpoint target. Dalam struktur file proxy, file XML ini berada di apiproxy/targets. Secara default, nama filenya adalah default.xml.

Sebagai konteks, pertimbangkan bahwa endpoint target biasanya mengarah ke layanan backend tertentu. Dalam hal ini, kita membuka layanan target tiruan Apigee. Definisi endpoint target terlihat seperti ini:

<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>

Elemen <HTTPTargetConnection> menentukan URL layanan backend, layanan target tiruan Apigee.

Namun, dalam kasus Node.js, aplikasi Node.js itu sendiri adalah target. Anda menentukannya dengan <ScriptTarget> dalam file apiproxy/targets/default.xml.

Sebagai ganti target yang menggunakan elemen <HTTPTargetConnection> untuk menentukan URL layanan backend, aplikasi Node.js direferensikan secara langsung menggunakan elemen <ScriptTarget>, seperti ini:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

Parameter <ResourceURL> harus selalu diawali dengan node://, diikuti dengan nama skrip Node.js utama. Selain itu, seperti yang telah disebutkan sebelumnya, resource Node.js harus berada di /apiproxy/resources/node pada cakupan proxy API.

Anda dapat menetapkan parameter tambahan di ScriptTarget. Untuk mengetahui detailnya, lihat Konfigurasi ScriptTarget lanjutan.

Untuk tujuan contoh ini, berikut adalah kode sumber untuk file Node.js utama, yang disebut server.js. Ini adalah server HTTP dasar yang menampilkan "Hello World!" saat menerima permintaan:

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');
});

Untuk meringkas, dengan asumsi bahwa aplikasi Node.js utama diterapkan dalam file yang disebut server.js, dan konfigurasi endpointnya bernama default.xml, Proxy API yang berisi skrip Node.js memiliki struktur berikut:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

Bersiap untuk men-deploy aplikasi

Sebagian besar aplikasi Node.js memiliki file dependensi dan menyertakan file package.json di direktori dasar. Dalam hal ini, praktik terbaiknya adalah menjalankan utilitas npm untuk memastikan bahwa direktori node_modules tingkat teratas diisi dengan dependensi sebelum Anda men-deploy. Jika ada dependensi jarak jauh yang tidak disertakan dalam node_modules, aplikasi Node.js Anda tidak akan berjalan di Edge.

Anda dapat mengambil semua dependensi dengan mudah ke sistem file menggunakan utilitas npm:

  1. Dari direktori dasar aplikasi Node.js Anda, jalankan:
$ npm install 

atau

$ npm update

Ketika dependensi diinstal, Anda siap untuk men-deploy proxy ke Edge.

Men-deploy aplikasi Node.js ke Apigee Edge

Sebelum men-deploy, Anda harus mengetahui nama organisasi, nama pengguna, dan sandi untuk akun Apigee Edge Anda. Anda memerlukan informasi ini untuk membentuk perintah alat deployment dengan benar.

Berikut adalah perintahnya. Ini mengasumsikan (dengan tanda -d) bahwa Anda berada di direktori utama proxy. Jika proxy Anda bernama foo, masukkan perintah ini dari direktori foo:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Untuk mengetahui arti setiap flag perintah, lakukan hal berikut:

$ apigeetool deployproxy -h

Untuk ringkasan singkat:

  • -n Flag ini memungkinkan Anda menentukan nama proxy yang akan dibuat saat aplikasi di-deploy. Anda akan melihat nama ini di UI pengelolaan.
  • -d Menentukan direktori root proxy API.
  • -o, -e, -u, dan -p menentukan nama organisasi, lingkungan deployment, nama pengguna, dan sandi.
Selesai. Aplikasi Node.js Anda digabungkan dalam proxy API, di-deploy ke Edge, dan dijalankan. Aplikasi ini menunggu permintaan dan siap diuji.

Menguji proxy API baru

Anda baru saja menambahkan aplikasi Node.js ke proxy API yang ada dan men-deploy proxy ke Apigee Edge. Untuk mengujinya, jalankan perintah cURL ini. Kita mengasumsikan bahwa jalur dasar default (/) digunakan (jalur dasar ditentukan dalam file konfigurasi endpoint proxy). Pastikan untuk mengganti nama organisasi Anda dengan org_name. Jika belum menginstal cURL, Anda dapat memasukkan URL di browser.

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

Melihat proxy baru di UI pengelolaan

Login ke akun Apigee Edge Anda, lalu buka halaman Proxy API. Anda akan melihat {i>proxy<i} yang disebut "hellonode" tercantum di sana.

Klik "hellonode" untuk melihat detail tentang proxy. Di tampilan Develop, Anda dapat melihat kode sumber yang diupload, menambahkan kebijakan, mengedit alur, dan sebagainya.

Langkah berikutnya

Untuk informasi tentang proses debug aplikasi Node.js yang berjalan di Apigee Edge, lihat Melakukan proses debug dan memecahkan masalah proxy Node.js.