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ın nasıl ekleneceği 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 bir proxy geliştirme ortamı ayarladığınızı ve bu ortama bir Node.js uygulaması entegre etmek istediğinizi varsayıyoruz.

Node.js uygulaması içeren bir proxy uygulamasının temel yapısı, aşağıdaki şekilde gösterilen kalıbı izler. Bu yapıda temel bir /apiproxy klasörü ve resources, targets ve proxies için alt klasörler bulunur. Node.js dosyalarının yerleştirilmesi gereken klasör apiproxy/resources/node klasörüdür. Diğer klasörler; proxy ve hedef uç noktaları, proxy akışı, koşullu akışlar vb. tanımlayan XML dosyalarını içerir. API proxy'si yapısı hakkında daha ayrıntılı bilgi için API proxy'si yapılandırma referansı başlıklı makaleyi inceleyin.

Yalnızca proxy'nin parçası olan tüm Node.js kodlarının /apiproxy/resources/node altında yerleştirilmesi gerektiğini unutmayın. Edge, dağıtıldığında bu dosyayı burada bulmayı bekler.

ScriptTarget ile Node.js hedefini belirtin

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. Dosya adı varsayılan olarak default.xml'dir.

Bağlam için hedef uç noktanın genellikle bir tür arka uç hizmetine işaret ettiğini unutmayın. Bu durumda, Apigee sahte hedef hizmetine ulaşıyoruz. Hedef uç nokta tanımı şu şekilde görünür:

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

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

Hedef, bir arka uç hizmetinin URL'sini belirtmek için <HTTPTargetConnection> öğesini kullanmak yerine, Node.js uygulamasına doğrudan <ScriptTarget> öğesi kullanılarak referans verilir. Örneğin:

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

<ResourceURL> parametresinin önüne her zaman node:// eklenmeli, 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 içinde bulunmalıdır.

ScriptTarget'ta ek parametreler ayarlayabilirsiniz. Ayrıntılı bilgi için Gelişmiş ScriptTarget yapılandırması başlıklı makaleyi inceleyin.

Bu örnekte, server.js adlı ana Node.js dosyasının kaynak kodu verilmiştir. Bu, istek aldığında "Hello World!" 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');
});

Özetlemek gerekirse, main Node.js uygulamasının server.js adlı bir dosyada uygulandığını ve uç nokta yapılandırmalarının her ikisinin de default.xml olarak adlandırıldığını varsayarsak 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ırlanma

Çoğu Node.js uygulamasında bağımlılık dosyaları bulunur ve temel dizinde package.json dosyası yer alır. Bu durumda en iyi uygulama, dağıtım yapmadan ö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'da bulunmayan uzak 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ım yapmadan önce kuruluşunuzun adını, kullanıcı adınızı ve Apigee Edge hesabınızın şifresini bilmeniz gerekir. Dağıtım aracı komutunu doğru şekilde oluşturmak için bu bilgilere ihtiyacınız vardır.

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

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Komut işaretlerinin her birinin ne anlama geldiği hakkında bilgi edinmek için şunları yapı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ı belirtmenize olanak tanır. Bu adı yönetim 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. İstekleri bekliyor ve test edilmeye hazır.

Yeni API proxy'sini test etme

Mevcut bir API proxy'sine Node.js uygulaması 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ç noktası yapılandırma dosyasında belirtilir). org_name yerine kuruluşunuzun adını yazdığınızdan 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örüntüleme

Apigee Edge hesabınıza giriş yapın ve API Proxies (API Proxyleri) sayfasına gidin. Orada "hellonode" adlı proxy'nin listelendiğini 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, politikalar ekleyebilir, akışları düzenleyebilir vb.

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.