Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Bu bölümde, geliştirici portallarında yayınlanmak üzere API ürünleri oluşturmak için Edge API'nin nasıl kullanılacağı açıklanmaktadır.
API'yi kullanarak API ürünleri oluşturma
API ürünleri, geliştiricilerin API anahtarları ve OAuth erişim jetonları kullanarak API'leri tüketen uygulamalardır. API ürünleri, "gruplandırmanızı" ve bu paketleri farklı gruplar için yayınlayarak birlikte çalışır. Örneğin iş ortağınıza bir dizi API kaynağı yayınlamanız gerekebilir. harici geliştiricilere başka bir paket yayınlıyorsunuz. API ürünleri, Bu paketleme işlemini, API'lerinizde herhangi bir değişiklik yapmadan, çalışırken gerçekleştirebilirsiniz. diğer bir avantaj da geliştirici erişiminin "yükseltilebilir" olmasıdır. ve "eski sürüme geçirildi" gerek kalmadan geliştiricilerin uygulamaları için yeni tüketici anahtarları edinmeleridir.
API'yi kullanarak bir API ürünü oluşturmak için şu adrese bir POST isteği gönderin:
/organizations/{org_name}/apiproducts
Daha fazla bilgi için API Ürünü Oluşturma API referansına bakın.
Aşağıdaki istek, weather_free
adlı bir API ürünü oluşturur. API ürünü
weatherapi
adlı API proxy'si tarafından açığa çıkarılan tüm API'lere erişim sağlar.
test
ortamına dağıtıldı. Onay türü, auto
olarak ayarlandığında
erişim isteğiniz onaylanır.
curl -X POST https://api.enterprise.apigee.com/v1/organization/myorg/apiproducts \ -H "Content-Type:application/json" \ -d \ '{ "approvalType": "auto", "displayName": "Free API Product", "name": "weather_free", "proxies": [ "weatherapi" ], "environments": [ "test" ] }' \ -u email:password
Örnek yanıt:
{ "apiResources" : [ ], "approvalType" : "auto", "attributes" : [ ], "createdAt" : 1362759663145, "createdBy" : "developer@apigee.com", "displayName" : "Free API Product", "environments" : [ "test" ], "lastModifiedAt" : 1362759663145, "lastModifiedBy" : "developer@apigee.com", "name" : "weather_free", "proxies" : [ "weatherapi" ], "scopes" : [ ] }
Yukarıda oluşturulan API ürünü, en temel senaryoyu uygular ve bir Bir ortamda API proxy'si. Yetkili bir uygulamanın erişmesine olanak tanıyan bir API ürününü tanımlar Test ortamında çalışan API proxy'si üzerinden erişilen tüm API kaynakları. API ürünleri API'lerinize erişim denetimini özelleştirmenizi sağlayan ek yapılandırma ayarları sunar farklı geliştirici grupları için. Örneğin, erişim sağlayan iki API ürünü oluşturabilirsiniz: farklı API proxy'lerine bağlayabilirsiniz. Aynı öğeye erişim sağlayan iki API ürünü de oluşturabilirsiniz: API proxy'leri ancak farklı ilişkili Kota ayarları olmalıdır.
API ürün yapılandırma ayarları
API ürünleri aşağıdaki yapılandırma seçeneklerini sunar:
Ad | Açıklama | Varsayılan | Zorunlu mu? |
---|---|---|---|
apiResources |
URI'ların veya kaynak yollarının ("gruplandırılmış") virgülle ayrılmış listesi API'ye ekleme belirler. Varsayılan olarak, kaynak yolları Belirli bir yolu seçebilir veya bir joker karakterle tüm alt yolları seçebilirsiniz.
Joker karakterler (/** ve /*) desteklenir. Çift yıldız işareti joker karakteri,
alt URI'lar dahildir. Tek bir yıldız işareti, yalnızca bir seviye aşağıda bulunan URI'ların olduğunu gösterir.
dahil. |
Yok | Hayır |
approvalType |
API anahtarlarının, API ürünü tarafından tanımlanan API'lere erişmek için nasıl onaylandığını belirtir. Eğer
manual olarak ayarlanırsa uygulama için oluşturulan anahtar "beklemede" durumu.
Bu tür anahtarlar, açıkça onaylanana kadar çalışmaz. auto olarak ayarlanırsa
tüm anahtarlar "onaylandı" durumunda oluşturulur hemen işe koyulabilirsiniz. (auto
genellikle sınırlı Kota sağlayan ücretsiz/deneme API ürünlerine erişim sağlamak için kullanılır
veya işlevler.) |
Yok | Evet |
attributes |
Varsayılan API ürün profilini meta veriler ekleyebilirsiniz.
API ürününün erişim düzeyini herkese açık, gizli veya dahili olarak belirtmek için bu özelliği kullanın. Örneğin:
"attributes": [
{
"name": "erişim",
"value": "herkese açık"
},
{
"ad": "ece","value": "ece" }, { "ad": "çubuk", "value": "çubuk" }
]
|
Yok | Hayır |
scopes |
Çalışma zamanında doğrulanan OAuth kapsamlarının virgülle ayrılmış listesi. (Apigee Edge Sunulan herhangi bir erişim jetonundaki kapsamların API'de ayarlanan kapsamla eşleştiğini doğrular product.) | Yok | Hayır |
proxies |
Bu API ürününün bağlı olduğu adlandırılmış API proxy'leri. Proxy belirleyerek şunları yapabilirsiniz: API ürünündeki kaynakları belirli API proxy'leriyle ilişkilendirerek geliştiricilerin diğer API proxy'leri üzerinden bu kaynaklara erişmesini engelleyebilir. | Yok | Hayır. Tanımlanmamışsa, apiResources açıkça tanımlanmalıdır (bkz. bilgi
(yukarıdaki apiResources için) ve flow.resource.name değişkeni
AttributionMessage politikası. |
environments |
Bu API ürününün bağlı olduğu adlandırılmış ortamlar (örneğin "test" veya "prod"). Bir veya daha fazla ortam belirterek API ürününde listelenen kaynakları bağlayabilirsiniz. belirli bir ortama bağlanarak geliştiricinin bu kaynaklara API aracılığıyla erişmesini proxy'leri kullanabilirsiniz. Bu ayar, örneğin, Google'ın veya gazetecilerin "prod"daki API proxy'leriyle ilişkili API proxy'lerinin erişimine açık değildir. "test" olarak adlandırılır. | Yok | Hayır. Tanımlanmamışsa apiResources açık bir şekilde tanımlanmalıdır ve
Ataması politikasında flow.resource.name değişkeni ayarlandı. |
quota |
Belirtilen zaman aralığında uygulama başına izin verilen istek sayısı. | Yok | Hayır |
quotaInterval |
Kotaların değerlendirildiği zaman birimi sayısı | Yok | Hayır |
quotaTimeUnit |
Kotaların sayıldığı zaman birimi (dakika, saat, gün veya ay). | Yok | Hayır |
Aşağıda, API ürünü oluşturmayla ilgili daha ayrıntılı bir örnek verilmiştir.
curl -X POST https://api.enterprise.apigee.com/v1/o/{org_name}/apiproducts \ -H "Content-Type:application/json" -d \ '{ "apiResources": [ "/forecastrss" ], "approvalType": "auto", "attributes": [ {"name": "access", "value": "public"} ], "description": "Free API Product", "displayName": "Free API Product", "name": "weather_free", "scopes": [], "proxies": [ "weatherapi" ], "environments": [ "test" ], "quota": "10", "quotaInterval": "2", "quotaTimeUnit": "hour" }' \ -u email:password
Örnek Yanıt
{ "apiResources" : [ "/forecastrss" ], "approvalType" : "auto", "attributes" : [ { "name" : "access", "value" : "public" }, "createdAt" : 1344454200828, "createdBy" : "admin@apigee.com", "description" : "Free API Product", "displayName" : "Free API Product", "lastModifiedAt" : 1344454200828, "lastModifiedBy" : "admin@apigee.com", "name" : "weather_free", "scopes" : [ ], "proxies": [ {'weatherapi'} ], "environments": [ {'test'} ], "quota": "10", "quotaInterval": "1", "quotaTimeUnit": "hour"}' }
Kapsamlar hakkında
Kapsam, OAuth'tan alınan bir kavramdır ve kabaca "izin" kavramıyla eşlenir. Şu tarihte: Apigee Edge, kapsamlar tamamen isteğe bağlıdır. Kapsamları kullanarak daha ayrıntılı yetkilendirme. Bir uygulamaya verilen her tüketici anahtarı bir "ana kapsam" ile ilişkilendirilir. İlgili içeriği oluşturmak için kullanılan ana kapsam, uygulamanın onaylanmış olduğu, tüm API ürünlerindeki bütün kapsamların kümesidir. Örneğin, birden fazla API ürününü tüketmesi onaylanmış uygulamalardır; ana kapsam, tüm kapsamların birleşimidir tüketici anahtarının onaylandığı API ürünlerinde tanımlanmıştır.
API ürünlerini göster
API kullanılarak bir kuruluş için oluşturulan API ürünlerini görüntülemek için aşağıdaki bölümlere bakın:
- API ürünlerini göster (para kazandıran)
Varsayılan olarak yalnızca para kazanılan API ürünleri (yani en az bir yayınlanmış ücret planı olan API ürünleri) gösterilir. Tüm API ürünlerini görüntülemek için
monetized
sorgu parametresinifalse
olarak ayarlayın. Bu, para kazanılmayan List API ürünleri API'sine GET isteği göndermeye eşdeğerdir:https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts?expand=true
. - API ürünlerini göster (para kazanılmayan)
- Geliştiricilere yönelik uygun API ürünlerini görüntüleme
- Bir şirket için uygun API ürünlerini görüntüleme
Aşağıda, API kullanılarak API ürünlerinin nasıl görüntüleneceğine dair bir örnek verilmiştir:
curl -X GET "https://ext.apiexchange.org/v1/mint/organizations/{org_name}/products?monetized=true" \ -H "Accept:application/json" \ -u email:password
Yanıt aşağıdaki gibi görünecektir (yanıtın yalnızca bir kısmı gösterilir):
{ "product" : [ { "customAtt1Name" : "user", "customAtt2Name" : "response size", "customAtt3Name" : "content-length", "description" : "payment api product", "displayName" : "payment", "id" : "payment", "name" : "payment", "organization" : { ... }, "pricePoints" : [ ], "status" : "CREATED", "transactionSuccessCriteria" : "status == 'SUCCESS'" }, { "customAtt1Name" : "user", "customAtt2Name" : "response size", "customAtt3Name" : "content-length", "description" : "messaging api product", "displayName" : "messaging", "id" : "messaging", "name" : "messaging", "organization" : ... }, "pricePoints" : [ ], "status" : "CREATED", "transactionSuccessCriteria" : "status == 'SUCCESS'" } ], "totalRecords" : 2 }
API kullanarak geliştiricileri kaydetme
Tüm uygulamalar geliştiricilere veya şirketlere aittir. Bu nedenle, uygulama oluşturmak için kaydettirmek için bir fırsattır.
Geliştiriciler profil oluşturarak bir kuruluşa kaydedilir. Geliştiricinin profildeki e-posta adresi, geliştirici için benzersiz bir anahtar olarak kullanılır. Apigee Edge.
Para kazanma özelliğini desteklemek için para kazanma özelliğini tanımlamanız gerekir. özelliklerini kullanın. Ayrıca rastgele başka bir özel analizler, özel politika yaptırımı vb. için kullanılan özellikler; bu rastgele özellikleri Apigee Edge tarafından
Örneğin, aşağıdaki istek e-posta adresi
ntesla@theremin.com
ve para kazanma alt kümesini tanımlar
özellikleri için Create Developer API'yi kullanın:
$ curl -H "Content-type:application/json" -X POST -d \ '{"email" : "ntesla@theremin.com", "firstName" : "Nikola", "lastName" : "Tesla", "userName" : "theremin", "attributes" : [ { "name" : "project_type", "value" : "public" }, { "name": "MINT_BILLING_TYPE", "value": "POSTPAID" }, { "name": "MINT_DEVELOPER_ADDRESS", "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}" }, { "name": "MINT_DEVELOPER_TYPE", "value": "TRUSTED" }, { "name": "MINT_HAS_SELF_BILLING, "value": "FALSE" }, { "name" : "MINT_SUPPORTED_CURRENCY", "value" : "usd" } ] }' \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers \ -u email:password
Örnek Yanıt
{ "email" : "ntesla@theremin.com", "firstName" : "Nikola", "lastName" : "Tesla", "userName" : "theremin", "organizationName" : "{org_name}", "status" : "active", "attributes" : [ { "name" : "project_type", "value" : "public" }, { "name": "MINT_BILLING_TYPE", "value": "POSTPAID" }, { "name": "MINT_DEVELOPER_ADDRESS", "value": "{\"address1\":\"Dev One Address\",\"city\":\"Pleasanton\",\"country\":\"US\",\"isPrimary\":true,\"state\":\"CA\",\"zip\":\"94588\"}" }, { "name": "MINT_DEVELOPER_TYPE", "value": "TRUSTED" }, { "name": "MINT_HAS_SELF_BILLING, "value": "FALSE" }, { "name" : "MINT_SUPPORTED_CURRENCY", "value" : "usd" } ], "createdAt" : 1343189787717, "createdBy" : "admin@apigee.com", "lastModifiedAt" : 1343189787717, "lastModifiedBy" : "admin@apigee.com" }
API'yi kullanarak geliştirici uygulamalarını kaydetme
Apigee Edge'e kayıtlı her uygulama bir geliştiriciyle ve bir API ürünüyle ilişkilendirilir. Uygulama bir geliştirici adına kaydedildiğinde Apigee Edge bir "kimlik bilgisi" oluşturur ( tüketici anahtarı ve gizli anahtar çifti) kaldırın. Ardından, uygulamanın bu kimlik bilgilerini iletmesi gerekir .
Aşağıdaki istekte Oluştur Yukarıda oluşturduğunuz geliştiriciye ait bir uygulamayı kaydetmek için Geliştirici Uygulaması API'si: ntesla@theremin.com. Bir uygulamayı kaydederken uygulama için bir ad, bir callbackUrl ve bir veya daha fazla API'nin listesini tanımlarsınız ürünler:$ curl -H "Content-type:application/json" -X POST -d \ '{ "apiProducts": [ "weather_free"], "callbackUrl" : "login.weatherapp.com", "keyExpiresIn" : "2630000000", "name" : "weatherapp"}' \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps \ -u email:password
callbackUrl,
Bazı OAuth izin türleri (yetkilendirme kodu gibi) kullanarak uygulamadan gelen yönlendirme isteklerini doğrular.
OAuth kullanıyorsanız bu değer, redirect_uri
ile aynı değere ayarlanmalıdır.
OAuth istekleri yapmak için kullanılır.
keyExpiresIn
özelliği,
için oluşturulacak tüketici anahtarını ifade eder. -1 varsayılan değeri,
sonsuz geçerlilik dönemi.
Örnek Yanıt
{ "appId": "5760d130-528f-4388-8c6f-65a6b3042bd1", "attributes": [ { "name": "DisplayName", "value": "Test Key Expires" }, { "name": "Notes", "value": "Just testing this attribute" } ], "createdAt": 1421770824390, "createdBy": "wwitman@apigee.com", "credentials": [ { "apiProducts": [ { "apiproduct": "ProductNoResources", "status": "approved" } ], "attributes": [], "consumerKey": "jcAFDcfwImkJ19A5gTsZRzfBItlqohBt", "consumerSecret": "AX7lGGIRJs6s8J8y", "expiresAt": 1424400824401, "issuedAt": 1421770824401, "scopes": [], "status": "approved" } ], "developerId": "e4Oy8ddTo3p1BFhs", "lastModifiedAt": 1421770824390, "lastModifiedBy": "wwitman@apigee.com", "name": "TestKeyExpires", "scopes": [], "status": "approved" }.
API'yi kullanan uygulamalar için tüketici anahtarlarını yönetme
Tüketici anahtarını alma (API Anahtarı) ekleyebilirsiniz
Bir uygulamanın kimlik bilgileri (API ürünü, tüketici anahtarı ve gizli anahtar), Uygulama profiline gidin. Kuruluşun yöneticisi, tüketici anahtarını istediği zaman alabilir.
Uygulama profili, tüketici anahtarının ve sırrının değerini ve tüketicinin durumunu görüntüler. anahtarının yanı sıra anahtara ilişkin API ürün ilişkilendirmelerini de içerir. Yönetici olarak, Geliştirici Uygulamasıyla İlgili Temel Ayrıntıları Al aracını kullanarak istediğiniz zaman tüketici anahtarı profilini API:
$ curl -X GET -H "Accept: application/json" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \ -u email:password
Örnek Yanıt
{ "apiProducts" : [ { "apiproduct" : "weather_free", "status" : "approved" } ], "attributes" : [ ], "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J", "consumerSecret" : "1eluIIdWG3JGDjE0", "status" : "approved" }
Bkz. Geliştirici Uygulamasıyla İlgili Önemli Ayrıntıları inceleyerek daha fazla bilgi edinin.
Bir API ürünü uygulama ve anahtar
Bir uygulamayı yeni bir API ürünü eklemek üzere güncellemek için aslında API ürününü uygulamanın anahtarına eklersiniz Add API Product to Key API'yi (Anahtar API'sine API Ürünü Ekleme) kullanarak yapabilirsiniz. Bkz. Daha fazla bilgi için API ürününü anahtara ekleyin.
Uygulama anahtarına API ürünü eklemek, anahtarı elinde bulunduran uygulamanın API'ye erişmesini sağlar kaynak sayısını göstermelidir. Aşağıdaki yöntem çağrısı, uygulama:
$ curl -H "Content-type:application/json" -X POST -d \ '{ "apiProducts": [ "newAPIProduct"] }' \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J \ -u email:password
Örnek Yanıt:
{ "apiProducts": [ { "apiproduct": "weather_free", "status": "approved" }, { "apiproduct": "newAPIProduct", "status": "approved" } ], "attributes": [], "consumerKey": "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J", "consumerSecret": "1eluIIdWG3JGDjE0", "expiresAt": -1, "issuedAt": 1411491156464, "scopes": [], "status": "approved" }
Tüketici anahtarlarını onaylama
Onay türünü manual olarak ayarlamak, hangi
geliştiriciler API ürünleriyle korunan kaynaklara erişebilir. API ürünlerinde anahtar olduğunda
onay manual
olarak ayarlanırsa tüketici anahtarları açıkça onaylanmalıdır. Anahtarlar:
Geliştirici Uygulamasının Belirli Anahtarını Onaylayın veya İptal Edin kullanılarak açıkça onaylanmış
API:
$ curl -X POST -H "Content-type:appilcation/octet-stream" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J?"action=approve" \ -u email:password
Örnek Yanıt
{ "apiProducts" : [ { "apiproduct" : "weather_free", "status" : "approved" } ], "attributes" : [ ], "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J", "consumerSecret" : "1eluIIdWG3JGDjE0", "status" : "approved" }
Bkz. Daha fazlası için Geliştirici Uygulamasının Belirli Anahtarını Onaylayın veya İptal Edin.
API ürünlerini onaylama (tüketici anahtarları için)
Bir API ürününün tüketici anahtarıyla ilişkilendirilmesi de durum içerir. API erişiminin şöyle olması için: tüketici anahtarının onaylanması ve tüketici anahtarının değiştirebilirsiniz. Bir tüketici anahtarının bir API ürünüyle ilişkilendirilmesi Geliştirici için bir Anahtara ilişkin API Ürününü Onaylama veya İptal Etme aracının kullanılmasıyla onaylanmıştır Uygulama API'si:
$ curl -X POST -H "Content-type:application/octet-stream" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=approve" \ -u email:password
Bu cURL komutu bir yanıt döndürmez. Bkz. Daha fazlası için bir Geliştirici Uygulamasının Anahtarına İlişkin API Ürününü Onaylayın veya İptal Edin.
Şu hesap için API ürünlerini iptal et: tüketici anahtarları
Tüketici anahtarının API ile ilişkilendirmesini iptal etmenizin birçok nedeni olabilir. belirler. süresi dolmuş bir deneme süresi veya bir uygulama, bir API ürününden başka bir tane.
Bir tüketici anahtarının bir API ürünüyle ilişkilendirmesini iptal etmek için Onayla veya Geliştirici Uygulaması'nın Belirli Anahtarı'nı İptal Edin geliştirme uygulamasının tüketici anahtarı:
$ curl -X POST -H "Content-type:application/octet-stream" \ https://api.enterprise.apigee.com/v1/o/{org_name}/developers/ntesla@theremin.com/apps/weatherapp/keys/HQg0nCZ54adKobpqEJaE8FefGkdKFc2J/apiproducts/weather_free?"action=revoke" \ -u email:password
Bu cURL komutu bir yanıt döndürmez. Bkz. Daha fazlası için Geliştirici Uygulamasının Belirli Anahtarını Onaylayın veya İptal Edin.
API ürün ayarlarını zorunlu kılın
API ürünlerinin zorunlu kılınması için aşağıdaki politika türlerinden birinin API'ye eklenmesi gerekir proxy akışı:
- VerifyAPIKey: Bir API anahtarına referans verir, bu anahtarın geçerli bir uygulamayı temsil ettiğini doğrular ve API ürünüyle eşleşir. Aşağıdakiler için API Anahtarı Doğrulama politikasını inceleyin: daha fazla.
- OAuthV1, "VerifyAccessToken" işlemi: İmzayı doğrular, OAuth 1.0a erişim jetonu ve "tüketici anahtarı" ve uygulamayı API ürünüyle eşleştirir. Şu uygulamalar için OAuth v1.0a politikasına göz atın: daha fazla.
- OAuthV2, "VerifyAccessToken" işlemi: OAuth 2.0 erişiminin doğrulandığını jetonun geçerli olduğunu, jetonu uygulamayla eşleştirir, uygulamanın geçerli olduğunu doğrular ve ardından bir API ürününe dönüştürmenize olanak tanır. Bkz. OAuth ana sayfası'nı ziyaret edin.
Politikalar ve API ürünleri yapılandırıldıktan sonra Apigee tarafından aşağıdaki süreç yürütülür Kenar:
- Apigee Edge bir istek alır ve uygun API proxy'sine yönlendirilir.
- Web Yöneticisi Araçları tarafından sunulan API anahtarını veya OAuth erişim jetonunu doğrulayan bir politika yürütülür gerekir.
- Edge, API Anahtarını veya erişim jetonunu bir uygulama profiline çözümler.
- Edge, uygulamayla ilişkili API ürünlerinin listesini (varsa) çözümler.
- Eşleşen ilk API ürünü, Kota değişkenlerini doldurmak için kullanılır.
- API anahtarı veya erişim jetonuyla eşleşen API ürünü yoksa istek reddedilir.
- Edge, Kota ayarlarıyla birlikte API ürün ayarları.