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 berasumsi bahwa Anda sudah memiliki lingkungan pengembangan proxy yang disiapkan di sistem lokal, dan Anda ingin mengintegrasikan aplikasi Node.js ke dalamnya.

Struktur dasar aplikasi proxy yang mencakup aplikasi Node.js mengikuti pola yang ditampilkan dalam gambar di bawah ini, dengan folder /apiproxy dasar dan sub-folder untuk resources, targets, dan proxy. Folder apiproxy/resources/node adalah tempat file Node.js harus ditempatkan. Folder lainnya berisi file XML yang mendefinisikan proxy dan endpoint target, alur proxy, alur bersyarat, dan sebagainya. Untuk deskripsi lebih lengkap tentang struktur proxy API, lihat Referensi konfigurasi proxy API.

Ingat bahwa setiap kode Node.js yang merupakan bagian dari proxy harus ditempatkan di /apiproxy/resources/node. Di situlah Edge berharap untuk menemukannya ketika di-deploy.

Menentukan target Node.js dengan ScriptTarget

Kunci untuk mengintegrasikan Node.js ke 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.

Untuk konteks, pertimbangkan bahwa endpoint target biasanya mengarah ke layanan backend dari jenis tertentu. Dalam hal ini, kita menekan 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 targetnya. Anda menentukan ini dengan <ScriptTarget> dalam file apiproxy/targets/default.xml.

Sebagai ganti penggunaan elemen <HTTPTargetConnection> untuk menentukan URL layanan backend, aplikasi Node.js direferensikan 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. Dan, seperti 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!" (Halo Dunia!) 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');
});

Ringkasnya, dengan asumsi bahwa aplikasi Node.js utama diimplementasikan dalam file bernama server.js, dan bahwa konfigurasi endpoint diberi nama 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 men-deploy aplikasi

Sebagian besar aplikasi Node.js memiliki file dependensi dan menyertakan file package.json dalam direktori dasar. Dalam hal ini, praktik terbaiknya adalah menjalankan utilitas npm untuk memastikan direktori node_modules level teratas terisi dengan dependensi sebelum Anda melakukan deployment. Jika ada dependensi jarak jauh yang tidak termasuk dalam node_modules, aplikasi Node.js Anda tidak akan berjalan di Edge.

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

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

atau

$ npm update

Setelah dependensi terinstal, Anda siap men-deploy proxy ke Edge.

Men-deploy aplikasi Node.js ke Apigee Edge

Sebelum melakukan deployment, 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 ini perintahnya. Tutorial ini mengasumsikan (dengan flag -d) bahwa Anda berada di direktori utama proxy Anda. Jika proxy Anda disebut foo, masukkan perintah ini dari direktori foo:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Untuk mendapatkan informasi tentang 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 utama 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 dieksekusi. Fungsi 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 tersebut ke Apigee Edge. Untuk mengujinya, jalankan perintah cURL ini. Kami berasumsi 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 dan buka halaman API Proxies. Anda akan melihat proxy bernama "hellonode" tercantum di sana.

Klik "hellonode" untuk melihat detail tentang proxy. Pada tampilan Kembangkan, Anda dapat melihat kode sumber yang diupload, menambahkan kebijakan, alur edit, dan sebagainya.

Langkah berikutnya

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