Mevcut bir API proxy'sine Node.js ekleme

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

Giriş

Bu konuda, yerel dosya sisteminizde 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 zaten bir proxy geliştirme ortamı oluşturduğunuz ve bu ortama bir Node.js uygulaması entegre etmek istediğiniz varsayılmaktadır.

Node.js uygulaması içeren bir proxy uygulamasının temel yapısı, aşağıdaki şekilde gösterilen kalıbı izler. Temel /apiproxy klasörü ve kaynaklar, hedefler ve proxy'ler için alt klasörler bulunur. Node.js dosyalarının yerleştirilmesi gereken yer 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ı içerir. API proxy yapısının daha ayrıntılı bir açıklaması için API proxy'si yapılandırma referansı başlıklı makaleyi inceleyin.

Proxy'nin bir parçası olan tüm Node.js kodlarının /apiproxy/resources/node altına 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. Varsayılan olarak dosya adı default.xml'dir.

Hedef uç noktanın genellikle bir tür arka uç hizmetine işaret ettiğini unutmayın. Bu durumda Apigee model hedef hizmetine ulaştık. Hedef uç noktası tanımı şu şekildedir:

<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 örnek hedef hizmeti) URL'sini belirtir.

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

Hedefin, arka uç hizmetinin URL'sini belirtmek için <HTTPTargetConnection> öğesini kullanması yerine, Node.js uygulamasına doğrudan bir <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> parametresi her zaman node:// ile başlamalı 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ında /apiproxy/resources/node konumunda bulunmalıdır.

ScriptTarget'ta ek parametreler ayarlayabilirsiniz. Ayrıntılar için Gelişmiş ScriptTarget yapılandırması bölümüne bakın.

Bu örneğin amacı doğrultusunda, server.js adlı ana Node.js dosyasının kaynak kodunu aşağıda görebilirsiniz. İstek aldığında "Merhaba Dünya!" döndüren temel HTTP sunucusu:

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 server.js adlı bir dosyada uygulandığı ve uç nokta yapılandırmalarının her ikisinin de default.xml olarak adlandırıldığı varsayıldığında, Node.js komut dosyasını içeren API Proxy'nin aşağıdaki yapısı vardır:

/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 uygulama, üst düzey node_modules dizininin dağıtımdan önce bağımlılıklarla doldurulmasını sağlamak için npm yardımcı programını çalıştırmaktır. node_modules dosyasına dahil edilmeyen uzak bağımlılık 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 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ırsınız demektir.

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

Dağıtım yapmadan ö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.

Komutu burada bulabilirsiniz. Proxy'nizin kök dizininde bulunduğunuz varsayılır (-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:

$ apigeetool deployproxy -h

Özetlemek gerekirse:

  • -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 çalıştırılır. Şu anda istek 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 şu cURL komutunu çalıştırın. Varsayılan temel yolun (/) kullanıldığını varsayarız (temel yol, proxy uç nokta yapılandırma dosyasında belirtilir). org_name yerine kuruluş adınızı girdiğinizden emin olun. cURL yüklü değilse 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 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 daha fazlasını yapabilirsiniz.

Sonraki adımlar

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