Menambahkan Node.js ke proxy API yang ada

Anda 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 mengasumsikan bahwa Anda telah menyiapkan lingkungan pengembangan proxy di sistem lokal dan 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 bersyarat, dan sebagainya. Untuk mengetahui deskripsi yang lebih lengkap tentang struktur proxy API, lihat Referensi konfigurasi proxy API.

Ingatlah bahwa kode Node.js yang merupakan bagian dari proxy harus ditempatkan di bawah /apiproxy/resources/node. Di sinilah Edge akan 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 terletak di apiproxy/targets. Secara default, nama filenya adalah default.xml.

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

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

Singkatnya, dengan asumsi bahwa aplikasi Node.js utama diimplementasikan dalam file bernama server.js, dan konfigurasi endpoint diberi nama default.xml, maka 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 di direktori dasar. Dalam hal ini, praktik terbaiknya adalah menjalankan utilitas npm untuk memastikan bahwa direktori node_modules tingkat atas 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 dengan mudah mengambil semua dependensi ke sistem file menggunakan utilitas npm:

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

atau

$ npm update

Setelah dependensi diinstal, Anda siap 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 memerlukan informasi ini untuk membentuk perintah alat deployment dengan benar.

Berikut perintahnya. Perintah 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 tanda perintah, lakukan hal berikut:

$ apigeetool deployproxy -h

Untuk ringkasan singkat:

  • -n Tanda 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 di-wrap dalam proxy API, di-deploy ke Edge, dan dieksekusi. 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. Kami mengasumsikan bahwa jalur dasar default (/) digunakan (jalur dasar ditentukan dalam file konfigurasi endpoint proxy). Pastikan untuk mengganti nama organisasi Anda dengan org_name. Jika tidak 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 Proxy API. Anda akan melihat proxy bernama "hellonode" tercantum di sana.

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

Langkah berikutnya

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