In de nieuwste versie van de WSO2 API Manager (versie 2.5.0) kun je een tool downloaden die het gemakkelijker maakt om een API of een applicatie van de ene omgeving naar de andere te kopiëren. Mensen die goed bekend zijn met de API Manager zouden kunnen zeggen: “Wacht eens even, dat was er toch al?” En daar hebben ze deels gelijk in. Er is een tool die je de mogelijkheid geeft om een API, die in de API Manager is gemaakt, te importeren en te exporteren. Dat heet API – import – export en is eigenlijk een war-bestand dat op de API Manager zelf in de webapps map geplaatst wordt. Mijn collega Daniel Stevanović schreef er in 2015 al een blog over.
Deze commandoregel tool gaat een stapje verder. Om precies te zijn gebruikt het de laatste versie, gelinkt aan de versie van de WSO2 API Manager, van precies datzelfde war-bestand. De toevoeging is dat je nu een uitgebreidere oplossing hebt waarin je omgevingen kunt definiëren waarheen je zou willen kopiëren. In deze blog gaan we kijken naar hoe we twee van deze omgevingen kunnen definiëren. Laten we ze ‘ontwikkeling’ en ‘test’ noemen en daarbij gebruiken we de commandoregel tool vanuit de ene omgeving om naar de andere omgeven te kopiëren.
De omgeving instellen met WSO2 API Manager
Laten we beginnen de omgeving die we gaan gebruiken te definiëren. Deze bestaat uit twee API Managers op dezelfde server, wat o.a. inhoudt dat er een poort-offset van één is voor de tweede API Manager, zodat ze beide op dezelfde server kunnen draaien.
We gaan verder geen andere wijzigingen aanbrengen aan de kant-en-klare API Managers, behalve de zojuist benoemde poort-offset. Op de eerste API Manager, degene zonder port-offset, zullen we de standaard API plaatsen: de Pizzashack. De reden hiervoor is dat het direct het juiste pakket heeft en geen verdere installatie vereist. Je hoeft alleen op de knop te klikken om de sample API te plaatsen.
Zorg ervoor dat je daadwerkelijk het WSO2 API Manager 2.5.0 Import / Export WAR-bestand plaatst (deploy). Je kunt het hier downloaden.
Een heel uitgebreide beschrijving van hoe je de API Manager kunt downloaden en installeren gaan we hier niet geven. Als je op zoek bent naar dat soort informatie, kun je beter onze blog over het installeren van WSO2 producten lezen.
Ik heb de API Manager genomen met WUM en het naar de nieuwste beschikbare versie geüpdatet. Het heeft twee mappen aangemaakt:
- APIM-DEV
- APIM-TEST
Zorg ervoor dat de tweede API Manager een poort-offset van één heeft.
Vervolgens heb ik de apimcli tool in dezelfde map gedownload waar ik de twee API-submappen heb gemaakt en heb de tool een keer uitgevoerd om de yaml configuratiebestanden aan te maken.
Laten we nu de twee omgevingen toevoegen door gebruik te maken van de commandoregel. Dis is voor een localhost deployment op Linux:
./apimcli add-env -n APIM-TEST --registration https://localhost:9444/client-registration/v0.13/register --apim https://localhost:9444 --token https://localhost:8244/token -- import-export https://localhost:9444/api-import-export-2.5.0-v1 -- admin https://localhost:9444/api/am/admin/v0.13 --api_list https://localhost:9444/api/am/publisher/v0.13/apis --app_list https://localhost:9444/api/am/store/v0.13/applications./apimcli add- env -n APIM-DEV --registration https://localhost:9443/client- registration/v0.13/register --apim https://localhost:9443 --token https://localhost:8243/token --import-export https://localhost:9443/api-import-export-2.5.0-v1 --admin https://localhost:9443/api/am/admin/v0.13 --api_list https://localhost:9443/api/am/publisher/v0.13/apis --app_list https://localhost:9443/api/am/store/v0.13/applications
Voor Windows is de ./ niet noodzakelijk.
Het bestand ziet er dan zo uit:
Start beide instanties met het shell- of bat-bestand en log in op de APIM-DEV. Plaats de sample PizzaShack API.
Laten we de omgevingen op een rijtje zetten. Zoals je kunt zien zijn de twee omgevingen aanwezig.
Nu gaan we de API exporteren met de apimcli tool:
apimcli export-api -n PizzaShackAPI -v 1.0.0 -r admin -e APIM-DEV -u admin -p admin
Omdat we hier tegen een probleem aanlopen in verband met een self-signed certificaat, krijgen we een reactie terug dat het certificaat ondertekend is door een onbekende autoriteit. We zorgen er nu voor dat de tool de -k of –onzeker instelling gebruik. De –verbose instelling geeft ons meer informatie over de handelingen van de tool.
apimcli export-api --verbose –-insecure -n PizzaShackAPI -v 1.0.0 -r admin -e APIM-DEV -u admin -p admin
De API is met succes geëxporteerd!
Als je een CA hebt die nog niet vertrouwd is, kun je de volgende commando’s gebruiken om de CA aan je besturingssysteem toe te voegen. Dit is de commandoregel die werkt voor Centos7:
sudo cp cacert.pem /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust
De geëxporteerde API vind je in Windows onder:
.wso2apimcliexportedapisAPIM-DEVPizzaShackAPI_1.0.0.zip
Linux heeft een andere map waarin de API’s geëxporteerd en opgeslagen worden.
/opt/wso2/.wso2apimcli/exported/apis/APIM-DEV/PizzaShackAPI_1.0.0.zip
Laten we de export verifiëren. Er zijn twee mappen terug te vinden:
- apis
- apps
Inderdaad, we vinden een zip-bestand met de geëxporteerde PizzaShackAPI.
De API importeren
Nu gaan we de API importeren in de APIM-TEST.
Voor Windows is dit het commando vanuit de directory:
apimcli import-api --verbose –-insecure -f APIM-DEVPizzaShackAPI_1.0.0.zip -e APIM-TEST -u admin -p admin
Linux gebruikt dit commando (let erop dat dit de toevoeging van de het CA certificaat Bevat).
./apimcli import-api –verbose -f /opt/wso2/.wso2apimcli/exported/apis/APIM-DEV/PizzaShackAPI_1.0.0.zip -e APIM-TEST -u admin -p admin
Vragen over deze post? Aarzel niet en laat hieronder een bericht achter.