fb
WSO2 API Manager 5 Minuten

Mit Samples mit dem WSO2 API Manager arbeiten

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
WSO2 API Manager samples
Scrollen

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]
Samples API Manager 1

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.

Samples API Manager 2

Das sind die Sample-Verzeichnisse. Ich ignoriere die Dateien, die keine Verzeichnisse sind.

SampleExplanationInstall / Java mvn build
apim-tutorialAPI Manager 4.0.0 tutorial series, docker compose setupInstall
CustomGatewayJWTGeneratorAPI Gateway CustomJWT API Manager 3.1.0Build
CustomJWTGeneratorCustomJWTGenerator for API Manager 2.6.0 / 3.0.0Build
CustomJWTTransformerSecure APIs using JWT (Self Contained) Access Tokens for API Manager 3.1.0Build
graphql-backendSimple Graphql ServerInstall
kubernetes-demoKubernetes demoInstall
mi-cicdMicro Integrator CICD Docker & KubernetesInstall
streaming-api-backendsWebsocket backend and SSE backendBuild / Install
XACML-handlerXACML Entitlement handlerBuild

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.