Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Jede Organisation hat einen eigenen Software-Entwicklungslebenszyklus (SDLC). Häufig muss die API-Proxy-Bereitstellung mit den für Back-End-Dienste verwendeten Prozessen synchronisiert und ausgerichtet werden.
Die in diesem Thema beschriebenen Edge API-Methoden können verwendet werden, um die API-Proxy Verwaltung in den SDLC Ihrer Organisation zu integrieren. Eine gängige Verwendung dieser API besteht darin, Skripts oder Code zu schreiben, die API-Proxys bereitstellen oder API-Proxys von einer Umgebung in eine andere migrieren, als Teil eines größeren automatisierten Prozesses, der auch andere Anwendungen bereitstellt oder migriert.
Die Edge API macht keine Annahmen zu Ihrem SDLC (oder dem eines anderen). Stattdessen werden atomare Funktionen bereitgestellt, die von Ihrem Entwicklungsteam koordiniert werden können, um den API-Entwicklungszyklus zu automatisieren und zu optimieren.
Vollständige Informationen finden Sie unter Edge APIs.
Wenn Sie die Edge API verwenden möchten, müssen Sie sich in Ihren Aufrufen authentifizieren. Dazu haben Sie folgende Möglichkeiten:
- OAuth2 (nur Public Cloud)
- SAML (Public und Private Cloud)
- Einfache Authentifizierung (nicht empfohlen; Public und Private Cloud)
In diesem Thema geht es um die APIs zur Verwaltung von API-Proxys.
Video:Sehen Sie sich dieses Kurzvideo an, um zu erfahren, wie Sie eine API bereitstellen.
Mit der API interagieren
Die folgenden Schritte führen Sie durch einfache Interaktionen mit den APIs.
APIs in Ihrer Organisation auflisten
Sie können zuerst alle API-Proxys in Ihrer Organisation auflisten. (Denken Sie daran, die Einträge für EMAIL:PASSWORD und ORG_NAME zu ersetzen. Eine Anleitung finden Sie unter Edge API verwenden.
curl -u EMAIL:PASSWORD \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis
Beispielantwort:
[ "weatherapi" ]
API abrufen
Sie können die Methode GET für jeden API-Proxy in Ihrer Organisation aufrufen. Dieser Aufruf gibt eine Liste aller verfügbaren Überarbeitungen des API-Proxys zurück.
curl -u EMAIL:PASSWORD -H "Accept: application/json" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi
Beispielantwort:
{
"name" : "weatherapi",
"revision" : [ "1" ]
}Das einzige Detail, das von dieser Methode zurückgegeben wird, ist der Name des API-Proxys zusammen mit der zugehörigen Überarbeitung, die eine zugehörige Nummer hat. API-Proxys bestehen aus einem Bundle von Konfigurations dateien. Überarbeitungen bieten einen einfachen Mechanismus zum Verwalten der Aktualisierungen der Konfiguration während Sie iterieren. Überarbeitungen werden sequenziell nummeriert, sodass Sie eine Änderung rückgängig machen können, indem Sie eine vorherige Überarbeitung Ihres API-Proxys bereitstellen. Sie können auch eine Überarbeitung eines API-Proxys in der Produktionsumgebung bereitstellen und gleichzeitig neue Überarbeitungen dieses API-Proxys in der Test Umgebung erstellen. Wenn Sie fertig sind, können Sie die neuere Überarbeitung Ihres API-Proxys über die Testumgebung der vorherigen Überarbeitung des API-Proxys in der Produktionsumgebung hochschalten.
In diesem Beispiel gibt es nur eine Überarbeitung, da der API-Proxy gerade erst erstellt wurde. Wenn ein API Proxy den Lebenszyklus der iterativen Konfiguration und Bereitstellung durchläuft, wird die Überarbeitungsnummer um ganze Zahlen erhöht. Wenn Sie API-Proxys mit direkten API-Aufrufen bereitstellen, können Sie die Überarbeitungsnummer optional erhöhen. Manchmal möchten Sie die Überarbeitung bei kleineren Änderungen nicht erhöhen.
API-Überarbeitung abrufen
Die API-Version (z. B. api.company.com/v1) sollte sich nur sehr
selten ändern. Wenn Sie die API-Version erhöhen, signalisieren Sie Entwicklern, dass es
eine erhebliche Änderung an der Signatur der externen Schnittstelle gegeben hat, die von der API bereitgestellt wird.
Die API-Proxy-Version ist eine inkrementelle Nummer, die einer API-Proxy-Konfiguration zugeordnet ist. API-Dienste verwalten Überarbeitungen Ihrer Konfigurationen, damit Sie eine
Konfiguration rückgängig machen können, wenn etwas schiefgeht. Standardmäßig wird die Überarbeitung eines API-Proxys automatisch
erhöht, wenn Sie einen API-Proxy mit der API API-Proxy importieren importieren. Wenn Sie die
Überarbeitung eines API-Proxys nicht erhöhen möchten, verwenden Sie die API-Proxy-Überarbeitung aktualisieren API. Wenn Sie Maven für die Bereitstellung verwenden, verwenden Sie die clean oder
update Optionen, wie in der Maven-Plug-in
Readme-Datei beschrieben.
Sie können beispielsweise die Methode GET für die API-Proxy-Version 1 aufrufen, um eine detaillierte Ansicht zu erhalten.
curl -u EMAIL:PASSWORD -H "Accept:application/json" \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/apis/weatherapi/revisions/1
Beispielantwort
{ "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" }
Diese Elemente der API-Proxy-Konfiguration werden in der Referenz zur API-Proxy-Konfiguration ausführlich dokumentiert.
API in einer Umgebung bereitstellen
Sobald Ihr API-Proxy so konfiguriert ist, dass er Anfragen ordnungsgemäß empfängt und weiterleitet, können Sie ihn
in einer oder mehreren Umgebungen bereitstellen. Normalerweise iterieren Sie API-Proxys in test und dann, wenn bereit,
_schalten_ Sie die API-Proxy-Überarbeitung auf prod hoch. Oft haben Sie viel mehr
Überarbeitungen eines API-Proxys in der Testumgebung, vor allem, weil Sie in der Produktionsumgebung viel weniger
iterieren.
Ein API-Proxy kann erst aufgerufen werden, nachdem er in einer Umgebung bereitgestellt wurde. Nachdem Sie die API-Proxy-Überarbeitung in der Produktionsumgebung bereitgestellt haben, können Sie die prod URL für externe
Entwickler veröffentlichen.
Umgebungen auflisten
Jede Organisation in Apigee Edge hat mindestens zwei Umgebungen: test und prod. Die
Unterscheidung ist willkürlich. Ziel ist es, Ihnen einen Bereich zur Verfügung zu stellen, in dem Sie prüfen können, ob Ihr API-Proxy
ordnungsgemäß funktioniert, bevor Sie ihn für externe Entwickler öffnen.
Jede Umgebung ist nur eine Netzwerkadresse, sodass Sie den Traffic zwischen den API-Proxys, an denen Sie arbeiten, und denen, die von Anwendungen zur Laufzeit aufgerufen werden, aufteilen können.
Umgebungen bieten auch die Trennung von Daten und Ressourcen. Sie können beispielsweise verschiedene Caches in Test und Produktion einrichten, auf die nur von API-Proxys zugegriffen werden kann, die in dieser Umgebung ausgeführt werden.
Umgebungen in einer Organisation ansehen
curl -u EMAIL:PASSWORD \ https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments
Beispielantwort
[ "test", "prod" ]
Deployments analysieren
Eine Bereitstellung ist eine Überarbeitung eines API-Proxys, die in einer Umgebung bereitgestellt wurde. Ein API
Proxy im Status bereitgestellt ist über das Netzwerk unter den Adressen zugänglich, die in
dem <VirtualHost> Element für diese Umgebung definiert sind.
API-Proxys bereitstellen
API-Proxys können erst aufgerufen werden, nachdem sie bereitgestellt wurden. API-Dienste stellen RESTful APIs bereit, mit denen Sie den Bereitstellungsprozess steuern können.
Es kann jeweils nur eine Überarbeitung eines API-Proxys in einer Umgebung bereitgestellt werden. Daher muss die Bereitstellung der bereitgestellten Überarbeitung aufgehoben werden. Sie können festlegen, ob das neue Bundle als neue Überarbeitung bereitgestellt werden soll oder ob es die vorhandene Überarbeitung überschreiben soll.
Sie lesen gerade die Apigee Edge -Dokumentation.
Zur
Apigee X -Dokumentation. info
Heben Sie zuerst die Bereitstellung der vorhandenen Überarbeitung auf. Geben Sie den Umgebungsnamen und die Überarbeitungsnummer des API-Proxys an, dessen Bereitstellung Sie aufheben möchten:
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
Stellen Sie dann die neue Überarbeitung bereit. Die neue Überarbeitung des API-Proxys muss bereits vorhanden sein:
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
Nahtlose Bereitstellung (keine Ausfallzeiten)
Verwenden Sie den Parameter override für die Bereitstellungsmethode und legen Sie ihn auf true fest, um die potenziellen Ausfallzeiten während der Bereitstellung zu minimieren.
Sie können nicht eine Überarbeitung eines API-Proxys über einer anderen bereitstellen. Die erste muss immer
bereitgestellt werden. Wenn Sie override auf true setzen, geben Sie an, dass eine Überarbeitung
eines API-Proxys über der derzeit bereitgestellten Überarbeitung bereitgestellt werden soll. Das Ergebnis ist, dass die
Bereitstellungsreihenfolge umgekehrt wird: Die neue Überarbeitung wird bereitgestellt und sobald die Bereitstellung
abgeschlossen ist, wird die Bereitstellung der bereits bereitgestellten Überarbeitung aufgehoben.
Im folgenden Beispiel wird der Wert override festgelegt, indem er als Formularparameter übergeben wird:
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
Sie können die Bereitstellung weiter optimieren, indem Sie den Parameter delay festlegen. Der
delay Parameter gibt ein Zeitintervall in Sekunden an, vor dem die Bereitstellung der vorherigen
Überarbeitung aufgehoben werden soll. Dadurch haben laufende Transaktionen ein Zeitintervall, in
dem sie abgeschlossen werden können, bevor die Bereitstellung des API-Proxys, der die Transaktion verarbeitet, aufgehoben wird. Folgendes geschieht mit
override=true und dem festgelegten Parameter delay:
- Überarbeitung 1 verarbeitet Anfragen.
- Überarbeitung 2 wird parallel bereitgestellt.
- Wenn die Bereitstellung von Überarbeitung 2 abgeschlossen ist, wird neuer Traffic an Überarbeitung 2 gesendet. An Überarbeitung 1 wird kein neuer Traffic gesendet.
- Überarbeitung 1 verarbeitet jedoch möglicherweise noch vorhandene Transaktionen. Wenn Sie den
delayParameter festlegen (z. B. 15 Sekunden), hat Überarbeitung 1 15 Sekunden Zeit, um die Verarbeitung vorhandener Transaktionen abzuschließen. - Nach dem Verzögerungsintervall wird die Bereitstellung von Überarbeitung 1 aufgehoben.
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
| Suchparameter | Beschreibung |
|---|---|
override |
Der Standardwert ist Setzen Sie den Wert auf |
delay |
Wenn Sie möchten, dass die Transaktionsverarbeitung für die vorhandene Überarbeitung abgeschlossen wird, bevor die Bereitstellung aufgehoben wird, und die Möglichkeit von Der Standardwert ist 0 (null) Sekunden. Wenn |
Wenn override=true zusammen mit einer delay verwendet wird, können HTTP-5XX
-Antworten während der Bereitstellung vermieden werden. Das liegt daran, dass beide API-Proxy-Überarbeitungen gleichzeitig bereitgestellt werden, wobei die Bereitstellung der älteren Überarbeitung nach der Verzögerung aufgehoben wird.
Alle Bereitstellungen einer API Überarbeitung ansehen
Manchmal ist es erforderlich, eine Liste aller derzeit bereitgestellten Überarbeitungen eines API Proxys abzurufen.
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" }
Die Antwort oben enthält viele Eigenschaften, die spezifisch für die interne Infrastruktur von Apigee Edge sind. Sofern Sie Apigee Edge nicht lokal verwenden, können Sie diese Einstellungen nicht ändern.
Die wichtigen Eigenschaften in der Antwort sind organization,
environment, aPIProxy, name, und state. Anhand dieser Eigenschaftswerte können Sie bestätigen, dass eine bestimmte Überarbeitung eines API-Proxys in einer Umgebung bereitgestellt ist.
Alle Bereitstellungen in der Testumgebung ansehen
Mit dem folgenden Aufruf können Sie auch den Bereitstellungsstatus für eine bestimmte Umgebung abrufen, einschließlich der Überarbeitungs nummer des derzeit bereitgestellten API-Proxys:
curl -u EMAIL:PASSWORD https://api.enterprise.apigee.com/v1/o/ORG_NAME/environments/test/deployments
Dadurch wird für jede in der Testumgebung bereitgestellte API dasselbe Ergebnis wie oben zurückgegeben.
Alle Bereitstellungen in Ihrer Organisation ansehen
Verwenden Sie die folgende API-Methode, um eine Liste aller derzeit bereitgestellten Überarbeitungen aller API-Proxys in allen Umgebungen abzurufen:
curl https://api.enterprise.apigee.com/v1/o/ORG_NAME/deployments \ -u EMAIL:PASSWORD
Dadurch wird für alle API-Proxys, die in allen Umgebungen bereitgestellt wurden, dasselbe Ergebnis wie oben zurückgegeben.
Da die API RESTful ist, können Sie einfach die POST Methode zusammen mit einer JSON- oder XML
Nutzlast für dieselbe Ressource verwenden, um einen API-Proxy zu erstellen.
Ein Profil für Ihren API-Proxy wird generiert. Die Standarddarstellung eines API-Proxys ist in
JavaScript Object Notation (JSON). Unten sehen Sie die Standard-JSON-Antwort auf die POST Anfrage oben,
mit der ein API-Proxy namens weatherapi erstellt wurde. Im Folgenden finden Sie eine Beschreibung der einzelnen Elemente im Profil
folgt:
{ "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" }
Das generierte API-Proxy-Profil zeigt die vollständige Struktur eines API Proxys:
APIProxy revision: Die sequenziell nummerierte Überarbeitung der API-Proxy-Konfiguration, wie sie von API-Diensten verwaltet wirdAPIProxy name: Der eindeutige Name des API-ProxysConfigurationVersion: API-Dienste-Version, der die API-Proxy Konfiguration entsprichtCreatedAt: Zeitpunkt, zu dem der API-Proxy generiert wurde, formatiert in UNIX-ZeitCreatedBy: E-Mail-Adresse des Apigee Edge-Nutzers, der den API Proxy erstellt hatDisplayName: Ein benutzerfreundlicher Name für den API-ProxyLastModifiedAt: Zeitpunkt, zu dem der API-Proxy generiert wurde, formatiert in UNIX ZeitLastModifiedBy: E-Mail-Adresse des Apigee Edge-Nutzers, der den API Proxy erstellt hatPolicies: Eine Liste der Richtlinien, die diesem API-Proxy hinzugefügt wurdenProxyEndpoints: Eine Liste benannter ProxyEndpointsResources: Eine Liste der Ressourcen (JavaScript, Python, Java, XSLT), die in diesem API-Proxy ausgeführt werden könnenTargetServers: Eine Liste benannter TargetServers (die mit der Management API erstellt werden können) für erweiterte Konfigurationen zur LastverteilungTargetEndpoints: Eine Liste benannter TargetEndpoints
Viele der Elemente der API-Proxy-Konfiguration, die mit der einfachen POST
-Methode oben erstellt wurden, sind leer. In den folgenden Themen erfahren Sie, wie Sie die wichtigsten
Komponenten eines API-Proxys hinzufügen und konfigurieren.
Weitere Informationen zu diesen Konfigurationselementen finden Sie in der Referenz zur API-Proxy-Konfiguration.
Skripts für die API
Die Beispiel-API-Proxys, auf GitHub enthalten Shell-Skripts, die das Apigee-Bereitstellungstool umschließen. Wenn Sie das Python-Bereitstellungstool aus irgendeinem Grund nicht verwenden können, können Sie die API direkt aufrufen. Beide Ansätze werden in den folgenden Beispielskripts veranschaulicht.
Bereitstellungstool umschließen
Prüfen Sie zuerst, ob das Python-Bereitstellungstool in Ihrer lokalen Umgebung verfügbar ist.
Erstellen Sie dann eine Datei für Ihre Anmeldedaten. Die von Ihnen erstellten Bereitstellungsskripts importieren
diese Einstellungen, sodass Sie die Anmeldedaten für Ihr Konto zentral verwalten können. Im Beispiel für die API
Plattform heißt diese Datei 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
Die Datei oben stellt alle Ihre Einstellungen für die Shell-Skripts zur Verfügung, die das Bereitstellungstool umschließen.
Erstellen Sie jetzt ein Shell-Skript, das diese Einstellungen importiert und damit das Bereitstellungstool aufruft. Ein Beispiel finden Sie unter Apigee API Platform-Beispiele.
#!/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
Um die Arbeit zu erleichtern, erstellen Sie auch ein Skript zum Aufrufen und Testen der API, wie folgt:
#!/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}"
API direkt aufrufen
Es kann nützlich sein, einfache Shell-Skripts zu schreiben, die das Hochladen und Bereitstellen von API-Proxys automatisieren.
Das folgende Skript ruft die Management API direkt auf. Es hebt die Bereitstellung der vorhandenen Überarbeitung des
API-Proxys auf, den Sie aktualisieren, erstellt eine ZIP-Datei aus dem /apiproxy Verzeichnis
mit Ihren Proxy-Konfigurationsdateien und lädt dann die Konfiguration hoch, importiert und stellt sie bereit.
#!/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