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 file lokal Anda dan cara men-deploy proxy ke Apigee Edge.

Menyiapkan lingkungan pengembangan Anda

Dalam topik ini, kami berasumsi bahwa Anda telah menyiapkan lingkungan pengembangan proxy di lingkungan lokal dan Anda ingin mengintegrasikan aplikasi Node.js ke dalamnya.

Struktur dasar aplikasi proxy yang mencakup aplikasi Node.js mengikuti pola yang ditampilkan pada gambar di bawah, dengan /apiproxy basis dan subfolder untuk resource, target, dan proxy. Folder apiproxy/resources/node adalah tempat file Node.js harus berada ditempatkan. Folder lainnya berisi file XML yang mendefinisikan {i> proxy<i} dan titik akhir target, aliran proxy, alur bersyarat, dan sebagainya. Untuk penjelasan yang lebih lengkap tentang struktur proxy API, lihat Referensi konfigurasi proxy API.

Ingatlah bahwa setiap kode Node.js yang merupakan bagian dari {i>proxy<i} harus ditempatkan di /apiproxy/resources/node. Di situlah Edge mengharapkan untuk menemukannya saat di-deploy.

Menentukan target Node.js dengan ScriptTarget

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

Untuk konteks, pertimbangkan bahwa endpoint target biasanya mengarah ke layanan backend atau semacamnya. Dalam hal ini, kita tekan 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>

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

Namun, dalam kasus Node.js, Aplikasi Node.js itu sendiri adalah targetnya. Anda menentukan ini dengan &lt;ScriptTarget&gt; pada file apiproxy/targets/default.xml.

Sebagai ganti target menggunakan parameter <HTTPTargetConnection> untuk menetapkan URL layanan backend, aplikasi Node.js direferensikan langsung menggunakan <ScriptTarget> , seperti ini:

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

URL <ResourceURL> parameter harus selalu diawali dengan node://, diikuti dengan nama skrip utama Node.js. 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 detailnya, lihat Konfigurasi ScriptTarget lanjutan.

Untuk tujuan contoh ini, berikut adalah kode sumber untuk file Node.js utama, yang disebut server.js. Ini adalah protokol HTTP dasar server yang menampilkan pesan "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');
});

Singkatnya, dengan asumsi bahwa aplikasi Node.js utama diterapkan dalam sebuah file yang disebut server.js, dan konfigurasi endpoint-nya telah keduanya bernama default.xml, lalu 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, jawaban terbaik praktiknya adalah dengan menjalankan utilitas npm untuk memastikan bahwa direktori node_modules tingkat teratas terisi dengan dependensi sebelum Anda men-deploy. Jika ada dependensi jarak jauh yang tidak yang 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, nama pengguna, dan sandi organisasi untuk akun Apigee Edge Anda. Anda memerlukan informasi ini untuk membentuk perintah alat deployment dengan benar.

Berikut ini perintahnya. Ia mengasumsikan (dengan penanda -d) bahwa Anda berada di direktori {i>root<i} dari {i>proxy<i}. Jika proxy Anda bernama foo, masukkan perintah ini dari 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 di UI pengelolaan.
  • -d Menentukan dari direktori utama proxy API.
  • -o, -e, -u, dan -p menentukan nama organisasi, lingkungan deployment, nama pengguna, dan sandi.
Selesai. Aplikasi Node.js Anda terbungkus dalam proxy API, diterapkan ke Edge, dan dieksekusi. Ini sedang 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 Luar biasa! Untuk mengujinya, jalankan perintah cURL ini. Kami menganggap jalur dasar default (/) digunakan (jalur dasar ditentukan dalam file konfigurasi endpoint proxy). Pastikan untuk mengganti organisasi Anda nama untuk org_name. Jika Anda 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 yang disebut "hellonode" yang tercantum di sana.

Klik "hellonode" untuk melihat detail tentang proxy. Di tampilan Kembangkan, Anda dapat melihat kode sumber yang Anda unggah, tambahkan kebijakan, edit alur, dan sebagainya.

Langkah berikutnya

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