Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Her kuruluşun benzersiz bir yazılım geliştirme yaşam döngüsü (SDLC) vardır. Çoğunlukla API proxy dağıtımını arka uç hizmetleri için kullanılan işlemlerle senkronize etmek ve uyumlu hale getirmek için kullanılır.
Bu konuda gösterilen Edge API yöntemleri, API proxy'sini entegre etmek için kullanılabilir yönetimi kuruluşunuzun SDLC'sine ekleyin. Bu API, yaygın bir şekilde komut dosyası veya kod yazmak için kullanılır. çalışmalarının parçası olarak API proxy'lerini bir ortamdan diğerine taşıyan başka uygulamaları da dağıtan veya taşıyan daha büyük ve otomatik bir süreçtir.
Edge API, SDLC'niz (veya bununla ilgili bir başkasınınkiler) hakkında herhangi bir varsayımda bulunmaz. Daha ziyade, otomasyon sağlamak için geliştirme ekibiniz tarafından koordine edilebilecek atomik fonksiyonları ortaya çıkarır. ve API geliştirme yaşam döngünüzü optimize edin.
Ayrıntılı bilgi için Edge API'leri bölümünü inceleyin.
Edge API'yi kullanmak için çağrılarınızda kimliğinizi doğrulamanız gerekir. Bu işlemi şununla yapabilirsiniz: aşağıdaki yöntemlerden birini kullanabilirsiniz:
- OAuth2 (Yalnızca Herkese Açık Bulut)
- SAML (Herkese Açık ve Private Cloud)
- Temel Kimlik Doğrulama (önerilmez; Herkese Açık ve Private Cloud)
Bu konu, API proxy'lerini yönetmek için kullanılan API grubuna odaklanmaktadır.
Video: API'lerin nasıl dağıtılacağını öğrenmek için bu kısa videoya göz atın.
API ile etkileşimde bulunma
Aşağıdaki adımlar, API'lerle olan basit etkileşimlerde size yol gösterir.
Kuruluşunuzdaki API'leri listeleme
Kuruluşunuzdaki tüm API proxy'lerini listeleyerek başlayabilirsiniz. ( EMAIL:PASSWORD ve ORG_NAME için girişler. Talimatlar için bkz. Edge API'yi kullanın.
curl -u EMAIL:PASSWORD \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis
Örnek Yanıt:
[ "weatherapi" ]
API alın
Kuruluşunuzdaki herhangi bir API proxy'sinde GET
yöntemini çağırabilirsiniz. Bu çağrı,
API proxy'sinin mevcut tüm düzeltmeleri.
curl -u EMAIL:PASSWORD -H "Accept: application/json" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi
Örnek Yanıt:
{ "name" : "weatherapi", "revision" : [ "1" ] }
Bu yöntem tarafından döndürülen tek ayrıntı, ilişkili düzeltme değeri kullanılır. API proxy'leri bir yapılandırma paketinden oluşur. dosyası olarak da kaydedebilir. Düzeltmeler, yapılandırma güncellemelerinizi yönetmek için basit bir mekanizma sağlar fark edeceksiniz. Düzeltmeler sıralı olarak numaralandırılır. Böylece, değişiklikleri dağıtarak API proxy'nizin önceki bir revizyonudur. Ayrıca, API proxy'sinin revizyonunu test aşamasında söz konusu API proxy'sinin yeni revizyonlarını oluşturmaya devam ederken bahsedeceğim. Hazır olduğunuzda API proxy'nizin daha yüksek revizyonunu tanıtabilirsiniz. Üretim ortamında API proxy'sinin önceki revizyonuna kıyasla test ortamı.
Bu örnekte, API proxy'si yeni oluşturulduğu için yalnızca bir düzeltme bulunmaktadır. API olarak proxy, yinelemeli yapılandırma ve dağıtımın yaşam döngüsünde, yani revizyon numarası tamsayılara göre artar. Dağıtım için doğrudan API çağrılarını kullanarak, isteğe bağlı olarak API proxy'sinin revizyon numarası. Bazen küçük değişiklikler yaptığınızda, bu ve düzeltmeyi artırır.
API Düzeltmesi Alma
API sürümü (örneğin, api.company.com/v1
)
nadiren. API sürümünü artırdığınızda, bu, geliştiricilere bu sürümün
.
API proxy'si düzeltmesi, API proxy'si ile ilişkili artan bir sayıdır
yapılandırma. API Hizmetleri, yapılandırmalarınızın düzeltmelerini korur. Böylece,
nasıl yapılandıracağınızı belirleyin. API proxy'sinin düzeltmesi varsayılan olarak
API proxy'si içe aktarma API'sini kullanarak API proxy'sini her içe aktardığınızda artar. Şu durumda:
bir API proxy'sinin düzeltmesini artırmak istemiyorsanız Güncelle
API proxy düzeltmesi API'si. Dağıtım için Maven kullanıyorsanız clean
veya
Maven eklentisinde açıklandığı gibi update
seçenekleri)
benioku.
Örneğin, ayrıntılı bir görünüm elde etmek için API proxy'si revizyon 1'de GET
yöntemini çağırabilirsiniz.
curl -u EMAIL:PASSWORD -H "Accept:application/json" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1
Örnek Yanıt
{ "configurationVersion" : { "majorVersion" : 4, "minorVersion" : 0 }, "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}", "createdAt" : 1343178905169, "createdBy" : "andrew@apigee.com", "lastModifiedAt" : 1343178905169, "lastModifiedBy" : "andrew@apigee.com", "name" : "weatherapi", "policies" : [ ], "proxyEndpoints" : [ ], "resources" : [ ], "revision" : "1", "targetEndpoints" : [ ], "targetServers" : [ ], "type" : "Application" }
Bu API proxy'si yapılandırma öğeleri, API proxy'si yapılandırma referansında ayrıntılı olarak açıklanmıştır.
Bir ortam
API proxy'niz istekleri doğru şekilde alıp yönlendirecek şekilde yapılandırıldıktan sonra proxy'nizi dağıtabilirsiniz
bir veya daha fazla ortama aktarabilirsiniz. Genellikle test
içerisinde API proxy'lerini tekrarlarsınız ve daha sonra hazır olduğunda
API proxy düzeltmesini prod
sürümüne tanıtmanız gerekir. Çoğu zaman daha pek çok
çok daha azını yapacağınız için öncelikle test ortamında bir API proxy'sinin revizyonlarını
iterasyona sahip olması gerekir.
Bir API proxy'si bir ortama dağıtılana kadar çağrılamaz. Planınızı
API proxy düzeltmesini üretime dağıttıktan sonra prod
URL'sini harici
birlikte çalışır.
Ortamları listeleme
Apigee Edge'deki her kuruluş en az iki ortama sahiptir: test
ve prod
. İlgili içeriği oluşturmak için kullanılan
rastgele bir ayrımdır. Amacınız, size API proxy'nizin geçersiz olduğunu doğrulamak için bir alan sunmaktır.
açmadan önce düzgün çalışıp çalışmadığını kontrol edin.
Her ortam yalnızca bir ağ adresidir ve böylece, iki nokta arasındaki trafiği ayırabilmenizi sağlar. Üzerinde çalıştığınız ve uygulamaların çalışma zamanında eriştiği API proxy'leri.
Ortamlar ayrıca veri ve kaynakların ayrılmasını sağlar. Örneğin, aylık bazda test ve üretimde farklı önbelleklere izin verir. Bunlar, yalnızca ilgili önbellekte çalışan API proxy'leri tarafından bahsedeceğim.
Ortamları kuruluş
curl -u EMAIL:PASSWORD \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments
Örnek Yanıt
[ "test", "prod" ]
Dağıtımları keşfetme
Dağıtım, bir ortamda dağıtılmış bir API proxy'sinin revizyonudur. API
Dağıtıldı durumundaki proxy'ye, aşağıda tanımlanan adreslerden ağ üzerinden erişilebilir:
söz konusu ortam için <VirtualHost>
öğesini kullanın.
API proxy'si dağıtma
API proxy'leri, dağıtılana kadar çağrılamaz. API Hizmetleri, RESTful API'leri kullanıma sunuyor özellikler ve araçlar vardır.
Bir ortamda, belirli bir zamanda API proxy'sinin yalnızca bir revizyonu dağıtılabilir. Bu nedenle Dağıtılan düzeltmenin dağıtımının kaldırılması gerekir. Yeni paketin dağıtılıp dağıtılmayacağını kontrol edebilirsiniz olup olmadığını kontrol edebilirsiniz.
Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Önce mevcut düzeltmenin dağıtımını kaldırın. Ortam adını ve dağıtımını kaldırmak istediğiniz API proxy'si:
curl -X DELETE \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \ -u EMAIL:PASSWORD
Ardından yeni düzeltmeyi dağıtın. API proxy'sinin yeni düzeltmesi zaten mevcut olmalıdır:
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments \ -u EMAIL:PASSWORD
Sorunsuz dağıtım (sıfır kapalı kalma süresi)
Dağıtım sırasında kapalı kalma süresi olasılığını en aza indirmek için override
parametresini kullanın
seçeneğini belirtin ve bunu true
olarak ayarlayın.
API proxy'sinin bir revizyonunu diğerinin üzerine dağıtamazsınız. İlk değer her zaman olmalıdır
dağıtılmadı. override
öğesini true
olarak ayarlayarak bir düzeltmenin
API proxy'si şu anda dağıtılan düzeltme üzerine dağıtılmalıdır. Sonuçta,
dağıtım sırası tersine çevrilir; yeni düzeltme dağıtılır ve dağıtım tamamlandıktan sonra
daha önce dağıtılmış olan düzeltmenin dağıtımı kaldırılır.
Aşağıdaki örnekte, override
değeri bir form parametresi olarak iletilmektedir:
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments" \ -d "override=true" \ -u EMAIL:PASSWORD
delay
parametresini ayarlayarak dağıtımı daha da optimize edebilirsiniz. İlgili içeriği oluşturmak için kullanılan
delay
parametresi, önceki parametrenin öncesinde saniye cinsinden bir zaman aralığı belirtir.
düzeltmenin dağıtımı kaldırılmalıdır. Bunun nedeni, yayındaki işlemlerin birkaç saat içinde
API proxy'sinin işlemlerini gerçekleştirmeden önce bunu tamamlaması gerekir. Takip edilenler:
override=true
ve delay
parametre ayarlandığında ne olur?
- Düzeltme 1, istekleri ele almaktadır.
- Düzeltme 2 paralel olarak dağıtılıyor.
- Düzeltme 2 tamamen dağıtıldığında Düzeltme 2'ye yeni trafik gönderilir. Yeni trafik yok Düzeltme 1'e gönderilir.
- Ancak, Düzeltme 1 mevcut işlemleri işlemeye devam ediyor olabilir.
delay
parametresini (örneğin, 15 saniye) seçerseniz Düzeltme 1'e, mevcut işlemlerin işlenmesini bitirmek için bir fırsattır. - Gecikme aralığından sonra Düzeltme 1'in dağıtımı kaldırılır.
curl -X POST -H "Content-type:application/x-www-form-urlencoded" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/e/ENV_NAME/apis/API_NAME/revisions/REVISION_NUMBER/deployments?delay=15" \ -d "override=true" \ -u EMAIL:PASSWORD
Sorgu Parametresi | Açıklama |
---|---|
override |
Varsayılan değer: Normal dağıtım davranışını geçersiz kılmak ve sorunsuz bir hizmet sunmak için |
delay |
Mevcut düzeltme uygulanmadan önce işlemin tamamlanmasına izin vermek için
ve Varsayılan değer 0 (sıfır) saniyedir. |
override=true
, delay
ile birlikte kullanıldığında, HTTP 5XX
bu yanıtlar ortadan kaldırılabilir. Bunun nedeni, her iki API proxy düzeltmesinin de
Gecikmenin ardından eski düzeltmenin dağıtımı kaldırıldı.
API'nin tüm dağıtımlarını görüntüleme Düzeltme
Bazen bir API'nin halihazırda dağıtılmış tüm düzeltmelerinin listesini getirmek gerekir temsil eder.
curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1/deployments \ -u EMAIL:PASSWORD
{ "aPIProxy" : "weatherapi", "environment" : [ { "configuration" : { "basePath" : "", "steps" : [ ] }, "name" : "test", "server" : [ { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "90096dd1-1019-406b-9f42-fbb80cd01200" }, { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "7d6e2eb1-581a-4db0-8045-20d9c3306549" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "1619e2d7-c822-45e0-9f97-63882fb6a805" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "8a5f3d5f-46f8-4e99-b4cc-955875c8a8c8" } ], "state" : "deployed" } ], "name" : "1", "organization" : "org_name" }
Yukarıdaki yanıt Apigee'nin dahili altyapısına özel birçok özellik içeriyor Kenar. Şirket içinde Apigee Edge kullanmıyorsanız bu ayarları değiştiremezsiniz.
Yanıtta yer alan önemli özellikler organization
,
environment
, aPIProxy
, name
ve state
. Ölçüt
bu özellik değerlerini gözden geçirdikten sonra, API proxy'sinin belirli bir
dağıtıldığı anlamına gelir.
Tüm dağıtımları test ortamı
Belirli bir ortama ait dağıtım durumunu da (düzeltme dahil olmak üzere) numarası) ekleyebilirsiniz:
curl -u EMAIL:PASSWORD https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/test/deployments
Bu işlem, test ortamında dağıtılan her API için yukarıdakiyle aynı sonucu döndürür.
Şuradaki tüm dağıtımları görün: kuruluş
Tüm ortamlardaki tüm API proxy'lerinin şu anda dağıtılmış olan düzeltmelerinin listesini getirmek için: aşağıdaki API yöntemini kullanın:
curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/deployments \ -u EMAIL:PASSWORD
Bu, tüm ortamlarda dağıtılan tüm API proxy'leri için yukarıdakiyle aynı sonucu döndürür.
API RESTful olduğundan JSON veya XML ile birlikte POST
yöntemini kullanabilirsiniz.
aynı kaynağa karşılık gelen yükü de içermelidir.
API proxy'niz için bir profil oluşturuldu. API proxy'sinin varsayılan temsili
JavaScript nesne gösterimi (JSON). Aşağıda, yukarıdaki POST
isteğine ilişkin varsayılan JSON yanıtı verilmiştir,
weatherapi
adlı bir API proxy'si oluşturdu. Profildeki her bir öğenin açıklaması
şöyle olur:
{ "configurationVersion" : { "majorVersion" : 4, "minorVersion" : 0 }, "contextInfo" : "Revision 1 of application weatherapi, in organization {org_name}", "createdAt" : 1357172145444, "createdBy" : "you@yourcompany.com", "displayName" : "weatherapi", "lastModifiedAt" : 1357172145444, "lastModifiedBy" : "you@yourcompany.com", "name" : "weatherapi", "policies" : [ ], "proxyEndpoints" : [ ], "resources" : [ ], "revision" : "1", "targetEndpoints" : [ ], "targetServers" : [ ], "type" : "Application" }
Oluşturulan API proxy profili, bir API'nin tam yapısını gösterir. proxy:
APIProxy revision
: API proxy'sinin sıralı olarak numaralandırılmış iterasyonu API Hizmetleri tarafından sağlandığı şekliyle yapılandırmasıAPIProxy name
: API proxy'sinin benzersiz adıConfigurationVersion
: API proxy'sinin kullanıldığı API Hizmetleri sürümü yapılandırma uygunluğuCreatedAt
: API proxy'sinin oluşturulduğu zaman (UNIX zamanıyla biçimlendirilmiştir)CreatedBy
: API'yi oluşturan Apigee Edge kullanıcısının e-posta adresi proxyDisplayName
: API proxy'si için kullanıcı dostu bir adLastModifiedAt
: API proxy'sinin oluşturulduğu zaman (UNIX olarak biçimlendirilmiştir) saatLastModifiedBy
: API'yi oluşturan Apigee Edge kullanıcısının e-posta adresi proxyPolicies
: Bu API proxy'sine eklenen politikaların listesiProxyEndpoints
: Adlandırılmış ProxyEndpoints listesiResources
: Şu reklamverenler tarafından kullanılabilecek kaynakların (JavaScript, Python, Java, XSLT) bu API proxy'sinde yürütülürTargetServers
: Adlandırılmış TargetServers ( management API) sağlar. Bu API, yük dengeleme amacıyla gelişmiş yapılandırmalarda kullanılır.TargetEndpoints
: Adlandırılmış TargetEndpoints listesi
API proxy yapılandırmasındaki çoğu öğenin basit POST
yöntemi boştur. Aşağıdaki konularda,
bileşenlerine ayıralım.
Bu yapılandırma öğeleri hakkında bilgi edinmek için API proxy'si yapılandırma referansına da bakabilirsiniz.
API ile komut dosyası çalıştırma
Örnek API proxy'lerini kullanarak, Apigee dağıtım aracını sarmalayan kabuk komut dosyaları sağlar. Herhangi bir nedenle Python dağıtım aracını kullanamazsınız, ardından API'yi doğrudan çağırabilirsiniz. Her iki yaklaşım da gösterilmektedir.
Dağıtım aracını sarmalama
Öncelikle Python dağıtım aracının kullanılabilir hale getirebilirsiniz.
Ardından, kimlik bilgilerinizi saklamak için bir dosya oluşturun. Yazdığınız dağıtım komut dosyaları içe aktarılır
Bu ayarlar, hesabınızın kimlik bilgilerini merkezi olarak yönetmenize yardımcı olur. API'de
Platform örneği, bu dosyanın adı setenv.sh
.
#!/bin/bash org="Your ORG on enterprise.apigee.com" username="Your USERNAME on enterprise.apigee.com" # While testing, it's not necessary to change the setting below env="test" # Change the value below only if you have an on-premise deployment url="https://api.enterprise.apigee.com" # Change the value below only if you have a custom domain api_domain="apigee.net" export org=$org export username=$username export env=$env export url=$url export api_domain=$api_domain
Yukarıdaki dosya, tüm ayarlarınızın dağıtımı sarmalayan kabuk komut dosyaları tarafından kullanılabilmesini sağlar aracını kullanın.
Şimdi, bu ayarları içe aktaran ve dağıtım aracını çağırmak için bunları kullanan bir kabuk komut dosyası oluşturun. (Örnek için bkz. Apigee API platformu örnekleri.)
#!/bin/bash source path/to/setenv.sh echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:" read -s password echo Deploying $proxy to $env on $url using $username and $org path/to/deploy.py -n {api_name} -u $username:$password -o $org -h $url -e $env -p / -d path/to/apiproxy
Hayatınızı gerçekten kolaylaştırmak için API'yi çağırmak ve test etmek üzere bir komut dosyası da oluşturun: şöyle olur:
#!/bin/bash
echo Using org and environment configured in /setup/setenv.sh
source /path/to/setenv.sh
set -x
curl "http://$org-$env.apigee.net/{api_basepath}"
Doğrudan API'yi çağırma
Yükleme işlemini otomatik hale getiren basit kabuk komut dosyaları yazmak, daha fazla bilgi edineceksiniz.
Aşağıdaki komut dosyası doğrudan Management API'yi çağırır. Mevcut düzeltmenin dağıtımını kaldırır
güncellemekte olduğunuz API proxy'si, /apiproxy
dizininden bir ZIP dosyası oluşturur
içerir ve sunucu yapılandırma dosyalarınızı
yapılandırma.
#!/bin/bash #This sets the name of the API proxy and the basepath where the API will be available api=api source /path/to/setenv.sh echo Delete the DS_store file on OSX echo find . -name .DS_Store -print0 | xargs -0 rm -rf find . -name .DS_Store -print0 | xargs -0 rm -rf echo "Enter your password for the Apigee Enterprise organization $org, followed by [ENTER]:" read -s password echo Undeploy and delete the previous revision # Note that you need to explicitly update the revision to be undeployed. # One benefit of the Python deploy tool is that it manages this for you. curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X DELETE curl -k -u $username:$password -X DELETE "$url/v1/o/$org/apis/$api/revisions/1" rm -rf $api.zip echo Create the API proxy bundle and deploy zip -r $api.zip apiproxy echo Import the new revision to $env environment curl -k -v -u $username:$password "$url/v1/o/$org/apis?action=import&name=$api" -T $api.zip -H "Content-Type: application/octet-stream" -X POST echo Deploy the new revision to $env environment curl -k -u $username:$password "$url/v1/o/$org/e/$env/apis/$api/revisions/1/deployments" -X POST