Im Allgemeinen sind in allen WSO2-Produkten eine Reihe von Samples enthalten. Der WSO2 API Manager ist da keine Ausnahme. Er unterscheidet sich jedoch wiederum vom Enterprise Integrator und vom WSO2 Identity Server, die wir in früheren Blogs behandelt haben. Wenn Sie einen sofort einsatzbereiten WSO2 API Manager herunterladen und ihn auf Ihrem lokalen Rechner installieren oder auf einem Server ausführen, können Sie eine Sample-API (War-Datei) bereitstellen. Dies ist natürlich keine ausgewachsene, vollwertige API. Es ist eine recht begrenzte API. Sie ermöglicht es Ihnen jedoch, das Produkt auszuprobieren, ohne dass Sie sich die Mühe machen müssen, ein API-Backend zu finden, das Sie verwenden können, und ohne dass Sie alle möglichen anderen Dinge tun müssen.
Dieser Blog befasst sich mit einigen anderen APIs, die ebenfalls über den API Manager verfügbar sind, sowie mit einigen Samples, von denen wir wissen, dass es sie gibt.
APIs
Fangen wir also mit den APIs an, die es gibt. Es handelt sich streng genommen nicht um APIs, da im eingebetteten Tomcat des API-Managers WAR-Dateien verfügbar sind.
Wer mit älteren Versionen vertraut ist, dem kommen diese WAR-Dateien vielleicht bekannt vor, denn wir hatten im Laufe der Jahre einige verschiedene Sample-APIs. Aber woher weiß man, wohin man gehen und wie man diese konfigurieren muss? Nun, das ist ein kleines Rätsel. Aber zum Glück bin ich hier, um das für Sie zu tun.
Mit Hilfe verschiedener Online-Ressourcen konnte ich irgendwo in einem WSO2 API Store im Internet eine bereitgestellte Calculator API finden. Von dort habe ich die Swagger 2.0 (oder OpenAPI 2.0) Definition heruntergeladen. Dies ist die Definition der API, die sich jedoch auf eine ältere Version des WSO2 API Manager (2.6.0) bezog.
Ich erstellte eine API in meinem API Manager 3.2.0 und importierte die Swagger-Definition in den WSO2 API Manager. Dadurch habe ich die richtigen Ressourcen erhalten, und das Einzige, was ich noch herausfinden musste, war die URL. Das war einfach, denn ich konnte sie in der Konsole sehen.
[2021-07-02 09:30:30,087] INFO - TomcatGenericWebappsDeployer Deployed webapp: StandardEngine[Catalina].StandardHost[localhost].StandardContext[/am/sample/calculator/v1].File[C:\Users\rob\Desktop\SAMLES~1\WSO2AM~1.0\bin\..\repository\deployment\server\webapps\am#sample#calculator#v1.war]
Hier ist die Swagger-Datei, wenn Sie die API in Ihrem WSO2 API Manager erstellen möchten.
swagger: '2.0'
info:
description: >-
Simple calculator API to perform addition, subtraction, multiplication and
division.
version: '1.0'
title: Calculator
host: localhost
basePath: /calc/1.0
schemes:
- https
- http
security:
- default: []
paths:
/add:
get:
summary: add x and y
parameters:
- name: x
in: query
required: true
type: string
- name: 'y'
in: query
required: true
type: string
responses:
'200': {}
security:
- default: []
x-auth-type: Application & Application User
x-throttling-tier: Unlimited
x-wso2-application-security:
security-types:
- oauth2
optional: false
/subtract:
get:
summary: subtract y from x
parameters:
- name: x
in: query
required: true
type: string
- name: 'y'
in: query
required: true
type: string
responses:
'200': {}
security:
- default: []
x-auth-type: Application & Application User
x-throttling-tier: Unlimited
x-wso2-application-security:
security-types:
- oauth2
optional: false
/multiply:
get:
summary: multiply x by y
parameters:
- name: x
in: query
required: true
type: string
- name: 'y'
in: query
required: true
type: string
responses:
'200': {}
security:
- default: []
x-auth-type: Application & Application User
x-throttling-tier: Unlimited
x-wso2-application-security:
security-types:
- oauth2
optional: false
/divide:
get:
summary: divide x by y
parameters:
- name: x
in: query
required: true
type: string
- name: 'y'
in: query
required: true
type: string
responses:
'200': {}
security:
- default: []
x-auth-type: Application & Application User
x-throttling-tier: Unlimited
x-wso2-application-security:
security-types:
- oauth2
optional: false
securityDefinitions:
default:
type: oauth2
authorizationUrl: 'https://test.com'
flow: implicit
x-wso2-auth-header: Authorization
x-wso2-cors:
corsConfigurationEnabled: false
accessControlAllowOrigins:
- '*'
accessControlAllowCredentials: false
accessControlAllowHeaders:
- authorization
- Access-Control-Allow-Origin
- Content-Type
- SOAPAction
- apikey
- testKey
accessControlAllowMethods:
- GET
- PUT
- POST
- DELETE
- PATCH
- OPTIONS
x-wso2-production-endpoints:
urls:
- 'https://localhost:9443/am/sample/calculator/v1/api/'
type: http
x-wso2-sandbox-endpoints:
urls:
- 'https://localhost:9443/am/sample/calculator/v1/api/'
type: http
x-wso2-basePath: /calc/1.0
x-wso2-transports:
- http
- https
x-wso2-application-security:
security-types:
- oauth2
optional: false
x-wso2-response-cache:
enabled: false
cacheTimeoutInSeconds: 300
Andere samples
Die andere Art von Ressourcen sind natürlich die API-Samples, die wir auf GitHub finden können. Wie Sie wissen, wird GitHub für das Repository der Produkte wie WSO2 API Manager, WSO2 Enterprise Integrator und WSO2 Identity Server verwendet, und auch die samples sind dort gespeichert.
Leider sind nicht alle Samples aktuell. In der Dokumentation werden Sie feststellen, dass einige Verweise auf frühere Versionen des API-Managers wie WSO2 API Manager 2.6.0 zu finden sind, die bereits einige Jahre alt sind. Das heißt aber nicht, dass es mit der Version 3.2.0 (die ich jetzt verwende) nicht funktioniert. Es ist aber immer sinnvoll zu prüfen, ob es eine neuere Version eines bestimmten Samples gibt, da es verschiedene Funktionen verwenden kann, die sich von Version zu Version geändert haben.
Ich habe die Zip-Datei heruntergeladen (Sie können natürlich auch Git verwenden). Bei den Samples handelt es sich teilweise um Java-Programme, die Sie kompilieren müssen. Es gibt aber auch Docker Compose Dateien, Micro Integrator Dateien mit Kubernetes und Streaming API Backends. Für die Kompilierung, oder besser gesagt für die Erstellung, werden Maven und Java benötigt.
Das sind die Sample-Verzeichnisse. Ich ignoriere die Dateien, die keine Verzeichnisse sind.
Sample | Explanation | Install / Java mvn build |
apim-tutorial | API Manager 4.0.0 tutorial series, docker compose setup | Install |
CustomGatewayJWTGenerator | API Gateway CustomJWT API Manager 3.1.0 | Build |
CustomJWTGenerator | CustomJWTGenerator for API Manager 2.6.0 / 3.0.0 | Build |
CustomJWTTransformer | Secure APIs using JWT (Self Contained) Access Tokens for API Manager 3.1.0 | Build |
graphql-backend | Simple Graphql Server | Install |
kubernetes-demo | Kubernetes demo | Install |
mi-cicd | Micro Integrator CICD Docker & Kubernetes | Install |
streaming-api-backends | Websocket backend and SSE backend | Build / Install |
XACML-handler | XACML Entitlement handler | Build |
Fazit
Wie Sie sehen können, ist es eine Kombination von Samples für mehrere Versionen von API Manager, von 2.6.0 bis 4.0.0.
Die meisten davon habe ich mir noch nicht angesehen, insbesondere nicht die Docker- und Kubernetes-Demos, aber ich werde sie mir genauer ansehen und vielleicht, wenn es ein nützliches Sample ist, einen Blog darüber schreiben.
Die Calculator-API, für die Sie jetzt die Swagger-Datei haben, kann als eine weitere einfache Sample-API auf dem API-Manager verwendet werden und kann für Samples und Demos verwendet werden.
Mehr über den WSO2 API Manager erfahren
Hoffentlich hat Ihnen die Lektüre dieses Blogs gefallen. Wenn Sie mehr über den WSO2 API Manager erfahren möchten, werfen Sie doch einen Blick auf die von uns angebotenen WSO2-Schulungen. Im Oktober 2021 beginnen wir mit unseren von Ausbildern geleiteten Präsenzschulungen in den Niederlanden und den Vereinigten Staaten sowie mit firmeninternen Schulungen in Ihrem Büro oder an einem Schulungsort in Ihrer Nähe für Gruppen von Teilnehmern aus einer Organisation.