Mevcut bir API proxy'sine Node.js ekleme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Giriş

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

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

Bu konuda, yerel sisteminizde zaten kurulu bir proxy geliştirme ortamınızın olduğunu ve buna bir Node.js uygulamasını entegre etmek istediğinizi varsayıyoruz.

Node.js uygulamasını içeren bir proxy uygulamasının temel yapısı, aşağıdaki şekilde gösterilen kalıbı temel bir /apiproxy klasörü ve kaynaklar, hedefler ve proxies için alt klasörlerle birlikte izler. apiproxy/resources/node klasörü, Node.js dosyalarının yerleştirilmesi gereken yerdir. Diğer klasörlerde, proxy ve hedef uç noktaları, proxy akışı, koşullu akışlar gibi unsurları tanımlayan XML dosyaları yer alır. API proxy yapısının daha kapsamlı bir açıklaması için API proxy yapılandırması referansı bölümüne bakın.

Proxy'nin bir parçası olan Node.js kodunun /apiproxy/resources/node altına yerleştirilmesi gerektiğini unutmayın. Edge'in dağıtım sırasında etiketi burada bulmayı bekler.

Node.js hedefini ScriptTarget ile belirtme

Node.js'yi bir proxy'ye entegre etmenin anahtarı, hedef uç noktanın XML dosyasında <ScriptTarget> öğesini belirtmektir. Proxy dosya yapısında bu XML dosyası apiproxy/targets konumunda bulunur. Varsayılan olarak dosya adı default.xml'dir.

Bağlam için hedef uç noktanın genellikle bir tür arka uç hizmetine işaret ettiğini düşünün. Bu durumda, örnek Apigee hedef hizmetini devreye soktuk. Hedef uç nokta tanımı aşağıdaki gibidir:

<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 (Apigee sahte hedef hizmeti) URL'sini belirtir.

Ancak Node.js söz konusu olduğunda Node.js uygulamasının kendisi hedeftir. Bunu apiproxy/targets/default.xml dosyasındaki <ScriptTarget> ile belirtirsiniz.

Bir arka uç hizmetinin URL'sini belirtmek için <HTTPTargetConnection> öğesini kullanan hedef yerine, aşağıdaki gibi bir <ScriptTarget> öğesi kullanılarak Node.js uygulamasına doğrudan referans verilir:

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

<ResourceURL> parametresinin başında her zaman node:// ve ardından ana Node.js komut dosyasının adı gelmelidir. Ayrıca, daha önce belirtildiği gibi Node.js kaynakları, API proxy kapsamındaki /apiproxy/resources/node konumunda bulunmalıdır.

ScriptTarget öğesinde ek parametreler ayarlayabilirsiniz. Ayrıntılar için Advanced ScriptTarget yapılandırması bölümüne bakın.

Bu örnekte, ana Node.js dosyasının server.js adlı kaynak kodunu aşağıda bulabilirsiniz. Bir istek aldığında "Hello World!" değerini döndüren temel HTTP sunucusudur:

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

Özetleyecek olursak, ana Node.js uygulamasının server.js adlı bir dosyada uygulandığı ve uç nokta yapılandırmalarının her ikisinin de default.xml olarak adlandırıldığı varsayılırsa Node.js komut dosyasını içeren API Proxy'si 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ırlanın

Ç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 uygulama, dağıtımdan önce üst düzey node_modules dizininin bağımlılıklarla doldurulmasını sağlamak için npm yardımcı programını çalıştırmaktır. node_modules içinde yer almayan uzaktan bağımlılıklar varsa Node.js uygulamanız 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 şu 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 Apigee Edge hesabınızın kuruluş adını, kullanıcı adını ve şifresini bilmeniz gerekir. Dağıtım aracı komutunu doğru şekilde oluşturmak için bu bilgilere ihtiyacınız vardır.

İşte komut. Proxy'nizin kök dizininde olduğunuzu (-d işaretiyle) varsayar. Proxy'nizin adı foo ise foo dizininden şu komutu girin:

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

$ apigeetool deployproxy -h

Kısa bir özet için:

  • -n Bu işaret, uygulama dağıtıldığında oluşturulacak proxy'nin adını belirtmenizi sağlar. Bu adı yönetim kullanıcı arayüzünde görürsünüz.
  • -d API proxy'sinin kök dizinini belirtir.
  • -o, -e, -u ve -p kuruluş adını, dağıtım ortamını, kullanıcı adını ve şifreyi belirtir.
Hepsi bu kadar. Node.js uygulamanız bir API proxy'sine sarmalanır, Edge'e dağıtılır ve yürütülür. İstek bekliyor ve test edilmeye hazır.

Yeni API proxy'sini test et

Mevcut bir API proxy'sine Node.js uygulamasını az önce eklediniz ve proxy'yi Apigee Edge'e dağıttınız. Test etmek için bu 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şunuzun adını org_name olarak değiştirdiğinizden emin olun. cURL yüklü değilse URL'yi bir tarayıcıya girebilirsiniz.

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

Yeni proxy'yi yönetim kullanıcı arayüzünde göster

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

Proxy ile ilgili ayrıntıları görüntülemek için "hellonode"u tıklayın. Geliştirme görünümünde, yüklediğiniz kaynak kodunu görebilir, politika ekleyebilir, akışları düzenleyebilir ve başka işlemler yapabilirsiniz.

Sonraki adımlar

Apigee Edge'de çalışan Node.js uygulamalarında hata ayıklama hakkında bilgi edinmek için Node.js proxy'lerinde hata ayıklama ve sorun giderme başlıklı makaleyi inceleyin.