Mevcut bir API proxy'sine Node.js ekleme

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Giriş

Bu konuda, bir Node.js uygulamasını yerel dosyanızdaki mevcut bir proxy'ye nasıl ekleyeceğiniz açıklanmaktadır. ve proxy'nin Apigee Edge'e nasıl dağıtılacağı.

Geliştirme ortamınızı hazırlama

Bu konuda, yerel tarayıcınızda oluşturulmuş bir proxy geliştirme ortamınızın ve buna bir Node.js uygulamasını entegre etmek istediğinizi belirtmelisiniz.

Node.js uygulaması içeren bir proxy uygulamasının temel yapısı, şu kalıbı izler aşağıda gösterildiği gibi, bir temel /apiproxy kaynaklar, hedefler ve prox'ler için klasör ve alt klasörler oluşturun. apiproxy/resources/node klasörü, Node.js dosyalarının bulunması gereken yerdir. yer alır. Diğer klasörlerde proxy ve hedef uç noktaları tanımlayan XML dosyaları, proxy akışını koşullu akışlar vb. API proxy yapısının daha kapsamlı bir açıklaması için API proxy yapılandırması referansı başlıklı makaleyi inceleyin.

Proxy'nin parçası olan tüm Node.js kodlarının /apiproxy/resources/node. İşte Edge, işte bunu bekler fark edebilirsiniz.

ScriptTarget ile Node.js hedefini belirtin.

Node.js'yi bir proxy'ye entegre etmek için kullanılan anahtar, <ScriptTarget> öğesi hedef uç noktanın XML dosyası. Bu XML dosyası, proxy dosya yapısında apiproxy/targets öğesini seçin. Varsayılan olarak dosya adı varsayılan.xml.

İçerik için bir hedef uç noktanın genellikle bir tür arka uç hizmetine işaret ettiğini düşünün. Bu durumda Apigee model hedef hizmetine ulaştık. Hedef uç nokta tanımı bu:

<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> öğesi arka uç hizmetinin URL'sini belirtiyor. hedef hizmetten ibaret değildir.

Ancak Node.js'de, Node.js uygulamasının kendisi hedeftir. Bunu şununla belirtirsiniz: &lt;ScriptTarget&gt; apiproxy/targets/default.xml dosyasına gidin.

<HTTPTargetConnection> komutunu kullanan hedef yerine öğesi, bir bir <ScriptTarget> komutu kullanılarak doğrudan Node.js uygulamasına referans verilir. öğesini şu şekilde kullanın:

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

<ResourceURL> parametresinin başında her zaman node:// öneki bulunmalıdır. ve ardından ana Node.js komut dosyasının adı gelir. Daha önce de belirtildiği gibi, Node.js kaynakları API proxy kapsamında /apiproxy/resources/node içinde yer alır.

ScriptTarget'ta ek parametreler ayarlayabilirsiniz. Ayrıntılar için bkz. Gelişmiş Komut Dosyası Hedefi yapılandırması.

Bu örneğin amacı doğrultusunda, ana Node.js dosyasının server.js. Bu, temel HTTP "Hello World!" değerini döndüren bir sunucu İşlem tamamlandığında:

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

Özetlemek gerekirse, ana Node.js uygulamasının bir dosyada uygulandığı server.js olduğunu ve uç nokta yapılandırmalarının API Proxy'si ve her ikisi de default.xml olarak adlandırılır ve Node.js komut dosyası aşağıdaki yapıya sahiptir:

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

Uygulamayı dağıtmaya hazırlanma

Çoğu Node.js uygulamasının bağımlılık dosyaları vardır ve temel dizinde bir package.json dosyası bulunur. Bu durumda en iyi npm yardımcı programını çalıştırarak üst düzey node_modules dizini doldurulur bağımlılıkları doğru bir şekilde gözden geçirin. Uzaktan çalışmaya ilişkin bağımlılıklar Node.js uygulamanız, node_modules içinde yer alır Edge'de çalışmaz.

npm yardımcı programını kullanarak tüm bağımlılıkları dosya sisteminize kolayca alabilirsiniz:

  1. Node.js uygulamanızın temel dizininden aşağıdaki komutu çalıştırın:
$ npm install 

veya

$ npm update

Bağımlılıklar yüklendiğinde proxy'nizi Edge'e dağıtmaya hazır olursunuz.

Node.js uygulamasını Apigee Edge'e dağıtma

Dağıtımdan önce kuruluşunuzun adını, kullanıcı adını ve şifresini bilmeniz gerekir. Apigee Edge hesabınıza gidin. Bu bilgilere ihtiyacınız var komutunun doğru şekilde oluşturulması gerekir.

Komutu burada bulabilirsiniz. (-d işaretiyle) sitenizin kök dizininde olduğunuzu varsayar temsil eder. Proxy'nizin adı foo ise, menüden bu komutu girin foo dizini:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Her bir komut işaretinin ne anlama geldiği hakkında bilgi edinmek için şunu yapın:

$ apigeetool deployproxy -h

Kısa bir özet için:

  • -n Bu flag'i kullanarak uygulama dağıtıldığında oluşturulacak proxy'nin adını belirtin. Bunu görürsünüz adını gösterdik.
  • -d API proxy'sinin kök dizini.
  • -o, -e, -u ve -p kuruluş adını belirtir, kullanıcı adı ve şifre oluşturabilirsiniz.
Bu kadar basit. Node.js uygulamanız bir API proxy'sine sarılır, Edge'e dağıtılır ve yürütülür. Google isteği bekliyor ve test edilmeye hazır.

Yeni API proxy'sini test etme

Mevcut bir API proxy'sine Node.js uygulamasını ekleyip proxy'yi Apigee'ye dağıttınız Kenar! Test etmek için şu cURL komutunu çalıştırın. Varsayılan temel yolun (/) kullanıldığını varsayıyoruz (temel yol proxy uç nokta yapılandırma dosyasında belirtilir). Kuruluşunuzu kullanmayı unutmayın org_name adı. Google Takvim'i cURL yüklüyse, URL'yi bir tarayıcıya girebilirsiniz.

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

Yönetim kullanıcı arayüzündeki yeni proxy'yi görüntüle

Apigee Edge hesabınıza giriş yapın ve şuraya gidin: API Proxy'leri sayfasına gidin. "hellonode" adlı proxy'yi görürsünüz. burada listelenir.

"hellonode"u tıklayın proxy ayrıntılarını görüntüleyin. Geliştirme görünümünde politikaları ekleme, akışları düzenleme vb. işlemleri yapabilirsiniz.

Sonraki adımlar

Apigee Edge'de çalışan Node.js uygulamalarında hata ayıklama hakkında bilgi edinmek için Node.js hatalarını ayıklama ve sorun giderme bölümüne bakın proxy'ler bölümüne bakın.