Publikowanie interfejsów API przy użyciu interfejsu Edge API

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

W tej sekcji opisano, jak za pomocą interfejsu Edge API tworzyć usługi API do publikacji w portalach dla programistów.

Tworzenie produktów API za pomocą interfejsu API

Usługi API umożliwiają programistom rejestrowanie aplikacji korzystających z interfejsów API za pomocą kluczy interfejsu API i tokenów dostępu OAuth. Usługi API umożliwiają łączenie zasobów interfejsu API i publikowanie ich dla różnych grup deweloperów. Może na przykład być konieczne opublikowanie jednego zestawu zasobów interfejsu API dla deweloperów partnerów, a innego – innego dla deweloperów zewnętrznych. Usługi API umożliwiają grupowanie w czasie rzeczywistym bez konieczności wprowadzania żadnych zmian w interfejsach API. Dodatkową korzyścią dla deweloperów jest to, że dostęp do nich może zostać zmieniony na wyższy lub niższy bez konieczności uzyskiwania nowych kluczy klienta.

Aby utworzyć usługę API za pomocą interfejsu API, wyślij żądanie POST do /organizations/{org_name}/apiproducts. Więcej informacji znajdziesz w dokumentacji interfejsu API Create API Product.

Poniższe żądanie tworzy usługę API o nazwie weather_free. Usługa API zapewnia dostęp do wszystkich interfejsów API udostępnianych przez serwer proxy interfejsu API o nazwie weatherapi, które są wdrażane w środowisku test. Typ zatwierdzenia jest ustawiony na auto, co oznacza, że każda prośba o dostęp zostanie zatwierdzona.

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 

Przykładowa odpowiedź:

{
  "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" : [ ]
}

Utworzona powyżej usługa API implementuje najbardziej podstawowy scenariusz, autoryzując żądania wysyłane do serwera proxy interfejsu API w środowisku. Definiuje usługę API, która umożliwia autoryzowanej aplikacji dostęp do wszystkich zasobów interfejsu API dostępnych przez serwer proxy interfejsu API w środowisku testowym. Usługi API udostępniają dodatkowe ustawienia konfiguracji, które umożliwiają dostosowanie kontroli dostępu do interfejsów API w różnych grupach programistów. Możesz na przykład utworzyć 2 usługi API, które zapewniają dostęp do różnych serwerów proxy interfejsów API. Możesz też utworzyć 2 usługi API, które zapewniają dostęp do tych samych serwerów proxy interfejsów API, ale z różnymi powiązanymi ustawieniami limitów.

Ustawienia konfiguracji usługi API

Usługi API udostępniają te opcje konfiguracji:

Nazwa Opis Domyślne Wymagana?
apiResources

Lista rozdzielonych przecinkami identyfikatorów URI lub ścieżek zasobów zawartych w usłudze API.

Domyślnie ścieżki zasobów są mapowane na podstawie zmiennej proxy.pathsuffix. Sufiks ścieżki serwera proxy jest zdefiniowany jako fragment identyfikatora URI po ścieżce bazowej ProxyEndpoint. Na przykład w przykładowej usłudze API poniżej element apiResources jest zdefiniowany jako /forecastrss. Ponieważ ścieżka podstawowa zdefiniowana dla tego serwera proxy interfejsu API to /weather, oznacza to, że ta usługa API zezwala wyłącznie na żądania wysyłane do /weather/forecastrss.

Możesz wybrać konkretną ścieżkę lub wszystkie ścieżki podrzędne, używając symbolu wieloznacznego. Możesz używać symboli wieloznacznych (/** i /*). Podwójny symbol wieloznaczny oznacza, że uwzględniane są wszystkie podrzędne identyfikatory URI. Pojedyncza gwiazdka oznacza, że uwzględniane są tylko identyfikatory URI znajdujące się o jeden poziom niżej.

Domyślnie '/' obsługuje te same zasoby co „/**” oraz ścieżkę podstawową zdefiniowaną przez serwer proxy interfejsu API. Jeśli na przykład ścieżka bazowa serwera proxy interfejsu API to /v1/weatherapikey, usługa API obsługuje żądania wysyłane do /v1/weatherapikey i wszystkich podrzędnych identyfikatorów URI, takich jak /v1/weatherapikey, /v1/weatherapikey i tak dalej. Informacje o zmianie działania tego domyślnego działania znajdziesz w artykule o zarządzaniu usługami API.

Nie dotyczy Nie
approvalType Określa, w jaki sposób klucze interfejsu API są zatwierdzane na potrzeby dostępu do interfejsów API zdefiniowanych przez usługę. Jeśli ma wartość manual, klucz wygenerowany dla aplikacji jest w stanie „oczekuje”. Takie klucze nie będą działać, dopóki nie zostaną wyraźnie zatwierdzone. Jeśli ma wartość auto, wszystkie klucze są generowane w stanie „zatwierdzonym” i działają od razu. (Parametr auto służy zwykle do zapewniania dostępu do bezpłatnych lub próbnych usług API, które mają ograniczone możliwości lub limity). Nie dotyczy Tak
attributes

Tablica atrybutów, które mogą służyć do rozszerzenia domyślnego profilu usługi API o metadane dostosowane do klienta.

Użyj tej właściwości, aby określić poziom dostępu do usługi API jako publiczny, prywatny lub wewnętrzny. Na przykład:
"attributes": [
{
"name": "dostęp",
"value": "publiczne"
{
"name": "foo",
"value": "foo"
},
{
"name": "bar",
"value": "bar"
}
]
Nie dotyczy Nie
scopes Lista rozdzielonych przecinkami zakresów OAuth, które są sprawdzane w czasie działania. (Apigee Edge sprawdza, czy zakresy w każdym przedstawionym tokenie dostępu pasują do zakresu ustawionego w usłudze API). Nie dotyczy Nie
proxies Nazwane serwery proxy interfejsu API, z którymi powiązany jest ten produkt API. Określając serwery proxy, możesz powiązać zasoby usługi API z określonymi serwerami proxy interfejsu API, aby uniemożliwić programistom dostęp do tych zasobów przez inne serwery proxy interfejsu API. Nie dotyczy Nie. Jeśli nie zdefiniowano atrybutu apiResources, musi on być wyraźnie określony (informacje na temat elementu apiResources znajdziesz powyżej) i zmienna flow.resource.name ustawiona w zasadzie AssignMessage.
environments Nazwane środowiska (np. „test” lub „prod”), z którymi jest powiązany ten produkt API. Określając co najmniej 1 środowisko, możesz powiązać zasoby wymienione w usłudze API z określonym środowiskiem, uniemożliwiając deweloperowi dostęp do tych zasobów przez serwery proxy interfejsów API w innym środowisku. To ustawienie jest używane na przykład do zapobiegania dostępowi serwerów proxy interfejsu API wdrożonych w ramach testu do zasobów powiązanych z serwerami proxy interfejsu API w środowisku „prod”. Nie dotyczy Nie. Jeśli nie zdefiniowano parametru apiResources, należy go wyraźnie zdefiniować i ustawić zmienną flow.resource.name w zasadzie AssignMessage.
quota Liczba dozwolonych żądań na aplikację w określonym przedziale czasu. Nie dotyczy Nie
quotaInterval Liczba jednostek czasu, w których oceniane są limity Nie dotyczy Nie
quotaTimeUnit Jednostka czasu (minuta, godzina, dzień lub miesiąc), w której są zliczane limity. Nie dotyczy Nie

Poniżej znajdziesz bardziej szczegółowy przykład tworzenia usługi API.

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

Przykładowa odpowiedź

{
  "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"}'
}

Informacje o zakresach

Zakres to pojęcie zaczerpnięte z protokołu OAuth, które mniej więcej odpowiada koncepcji „uprawnień”. W Apigee Edge zakresy są opcjonalne. Aby uzyskać bardziej szczegółową autoryzację, możesz używać zakresów. Każdy klucz klienta wydany dla aplikacji jest powiązany z „zakresem głównym”. Zakres główny to zbiór wszystkich zakresów we wszystkich usługach API dla danej aplikacji, która została zatwierdzona. W przypadku aplikacji zatwierdzonych do korzystania z wielu usług interfejsu API zakres główny to suma wszystkich zakresów zdefiniowanych w usługach API, dla których klucz klienta został zatwierdzony.

Wyświetl usługi API

Informacje o wyświetlaniu usług API utworzonych na potrzeby organizacji przy użyciu interfejsu API znajdziesz w tych sekcjach:

Poniżej znajdziesz przykład, jak wyświetlić produkty za pomocą interfejsu API:

curl -X GET "https://ext.apiexchange.org/v1/mint/organizations/{org_name}/products?monetized=true" \
  -H "Accept:application/json" \
  -u email:password

Odpowiedź powinna wyglądać mniej więcej tak (widoczna będzie tylko część odpowiedzi):

{
  "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
}

Rejestrowanie deweloperów przy użyciu interfejsu API

Wszystkie aplikacje należą do deweloperów lub firm. Dlatego najpierw musisz zarejestrować dewelopera lub firmę.

Programiści są rejestrowani w organizacji przez utworzenie profilu. Pamiętaj, że adres e-mail dewelopera podany w profilu jest używany jako unikalny klucz programisty w Apigee Edge.

Aby móc zarabiać, musisz zdefiniować atrybuty zarabiania podczas tworzenia lub edytowania dewelopera. Możesz też zdefiniować inne atrybuty, które będą używane w niestandardowych analizach, egzekwowaniu zasad niestandardowych itp. Te atrybuty nie będą interpretowane przez Apigee Edge,

Na przykład to żądanie rejestruje profil dewelopera, którego adres e-mail to ntesla@theremin.com, i określa podzbiór atrybutów zarabiania za pomocą interfejsu API Create Developer:

$ 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 

Przykładowa odpowiedź

{
          "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"
        }

Rejestrowanie aplikacji dla deweloperów za pomocą interfejsu API

Każda aplikacja zarejestrowana w Apigee Edge jest powiązana z deweloperem i usługą API. Gdy aplikacja jest zarejestrowana w imieniu dewelopera, Apigee Edge generuje „dane logowania” (para klucza klienta i obiektu tajnego), które identyfikują aplikację. Aplikacja musi następnie przekazywać te dane logowania w ramach każdego żądania wysyłanego do usługi API powiązanej z aplikacją.

To żądanie używa interfejsu API Create Developer App do zarejestrowania aplikacji utworzonego przez Ciebie powyżej dewelopera: ntesla@theremin.com. Podczas rejestrowania aplikacji podajesz nazwę, callbackUrl i listę co najmniej jednej usługi API:
$ 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 

Element callbackUrl jest używany przez niektóre typy uwierzytelniania OAuth (np. kod autoryzacji) do weryfikowania żądań przekierowania z aplikacji. Jeśli korzystasz z protokołu OAuth, ta wartość musi być taka sama jak wartość redirect_uri używana do wysyłania żądań OAuth.

Atrybut keyExpiresIn określa (w milisekundach) okres ważności klucza klienta, który zostanie wygenerowany dla aplikacji dewelopera. Wartość domyślna (-1) oznacza nieskończony okres ważności.

Przykładowa odpowiedź

{
  "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"
}

Zarządzanie kluczami klientów aplikacji przy użyciu interfejsu API

Uzyskiwanie klucza klienta (klucza interfejsu API) dla aplikacji

Dane logowania do aplikacji (usługa interfejsu API, klucz klienta i tajny klucz) są zwracane w ramach profilu aplikacji. Administrator organizacji może w każdej chwili pobrać klucz klienta.

Profil aplikacji wyświetla wartość klucza i tajnego klucza klienta, stan klucza klienta oraz wszelkie powiązania usług interfejsu API dla tego klucza. Jako administrator możesz w każdej chwili pobrać profil klucza klienta za pomocą narzędzia Get Key Details for a Developer App 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

Przykładowa odpowiedź

{
  "apiProducts" : [ {
    "apiproduct" : "weather_free",
    "status" : "approved"
  } ],
  "attributes" : [ ],
  "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
  "consumerSecret" : "1eluIIdWG3JGDjE0",
  "status" : "approved"
}

Więcej informacji znajdziesz w artykule Pobieranie najważniejszych szczegółów aplikacji związanej z programistą.

Dodaj usługę API do aplikacji i klucza

Aby zaktualizować aplikację i dodać nową usługę API, musisz dodać ją do klucza aplikacji za pomocą interfejsu API dodawania usługi API do klucza. Więcej informacji znajdziesz w sekcji Dodawanie usługi API do klucza.

Dodanie usługi API do klucza aplikacji umożliwia aplikacji, która ma klucz, na dostęp do zasobów interfejsu API pakietu w usłudze API. To wywołanie metody dodaje do aplikacji nową usługę API:

$ 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 

Przykładowa odpowiedź:

{
  "apiProducts": [
   {
     "apiproduct": "weather_free",
     "status": "approved"
   },
   {
     "apiproduct": "newAPIProduct",
     "status": "approved"
   }
 ],
 "attributes": [],
 "consumerKey": "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
 "consumerSecret": "1eluIIdWG3JGDjE0",
 "expiresAt": -1,
 "issuedAt": 1411491156464,
 "scopes": [],
 "status": "approved"
 }

Zatwierdź klucze klienta

Ustawienie typu zatwierdzania na ręczne pozwala kontrolować, którzy deweloperzy mogą korzystać z zasobów chronionych przez usługi API. Gdy usługi interfejsu API mają zatwierdzanie kluczy ustawione na manual, klucze klienta muszą być wyraźnie zatwierdzone. Klucze można bezpośrednio zatwierdzić za pomocą interfejsu API Approve or Anulowanie konkretnego klucza aplikacji programisty:

$ 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

Przykładowa odpowiedź

{
  "apiProducts" : [ {
  "apiproduct" : "weather_free",
  "status" : "approved"
} ],
  "attributes" : [ ],
  "consumerKey" : "HQg0nCZ54adKobpqEJaE8FefGkdKFc2J",
  "consumerSecret" : "1eluIIdWG3JGDjE0",
  "status" : "approved"
}

Więcej informacji znajdziesz w artykule Zatwierdzanie lub unieważnianie klucza aplikacji dewelopera.

Zatwierdzanie usług API dla kluczy klientów

Powiązanie usługi API z kluczem klienta też ma stan. Aby zapewnić prawidłowy dostęp do interfejsu API, klucz klienta musi być zatwierdzony, a klucz klienta musi być zatwierdzony na potrzeby odpowiedniej usługi interfejsu API. Powiązanie klucza klienta z usługą interfejsu API można zatwierdzić, korzystając z interfejsu API Validate or Anulowanie usługi API dla klucza aplikacji programisty:

$ 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

To polecenie cURL nie zwraca odpowiedzi. Więcej informacji znajdziesz w artykule Zatwierdzanie lub unieważnianie klucza API dla klucza aplikacji.

Unieważnianie usług interfejsu API dla kluczy klientów

Jest wiele powodów, dla których może być konieczne unieważnienie powiązania klucza klienta z usługą interfejsu API. Usunięcie usługi interfejsu API z klucza klienta może być konieczne ze względu na nieopłacenie przez dewelopera płatności, upłynięcie okresu próbnego lub gdy aplikacja jest awansowana z jednej usługi API do innej.

Aby unieważnić powiązanie klucza klienta z usługą API, użyj interfejsu API Zatwierdzanie lub unieważnianie konkretnego klucza aplikacji programisty , korzystając z działania unieważnienia dla klucza klienta używanej przez programową aplikację:

$ 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

To polecenie cURL nie zwraca odpowiedzi. Więcej informacji znajdziesz w artykule Zatwierdzanie lub unieważnianie klucza aplikacji dewelopera.

Wymuszanie ustawień interfejsu API

Aby usługi API były egzekwowane, do przepływu proxy interfejsu API musi być dołączony jeden z tych typów zasad:

  • VerifyAPIKey: odwołuje się do klucza interfejsu API, sprawdza, czy reprezentuje on prawidłową aplikację i pasuje do usługi API. Więcej informacji znajdziesz w artykule Weryfikowanie klucza interfejsu API.
  • OAuthV1, operacja „VerifyAccessToken”: sprawdza podpis, weryfikuje token dostępu OAuth 1.0a oraz „klucz klienta” oraz dopasowuje aplikację do usługi API. Więcej informacji znajdziesz w artykule Zasady OAuth w wersji 1.0a.
  • OAuthV2, operacja „VerifyAccessToken”: sprawdza, czy token dostępu OAuth 2.0 jest prawidłowy, dopasowuje go do aplikacji, sprawdza, czy aplikacja jest prawidłowa, a następnie dopasowuje ją do usługi API. Więcej informacji znajdziesz w artykule Strona główna protokołu OAuth.

Po skonfigurowaniu zasad i usług API Apigee Edge wykonuje ten proces:

  1. Żądanie jest odbierane przez Apigee Edge i kierowane do odpowiedniego serwera proxy interfejsu API.
  2. Zostanie uruchomiona zasada weryfikująca klucz interfejsu API lub token dostępu OAuth przedstawiony przez klienta.
  3. Edge przekazuje klucz interfejsu API lub token dostępu do profilu aplikacji.
  4. Edge otwiera listę (jeśli występują) usług API powiązanych z aplikacją.
  5. Pierwsza pasująca usługa API jest używana do wypełniania zmiennych limitu.
  6. Jeśli żaden produkt API nie pasuje do klucza interfejsu API lub tokena dostępu, żądanie jest odrzucane.
  7. Edge wymusza kontrolę dostępu na podstawie identyfikatora URI (środowisko, serwer proxy interfejsu API i ścieżka identyfikatora URI) na podstawie ustawień usługi API i ustawień limitu.