fb
API Management 6 minuten

Wat is er nieuw aan de WSO2 API Manager 3.0.0?

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
yenlo blog 2019 11 07 whats new in wso2 api manager 3 0 0
Scroll

What's new in WSO2 API Manager 3.0.0?Het is een drukke maand geweest voor de mensen bij WSO2 met de introductie van de nieuwe Enterprise Integrator 7.0.0 en daarnaast staan de updates van de Enterprise Integrator 6.6.0, de Identity Server 5.9.0 en de API Manager 3.0.0 geplant. In deze blog gaan we in grote lijnen kijken naar wat er nieuw is aan deze versie van de WSO2 API Manager. We bestuderen daarvoor de wijzigingen die beschreven staan in de release notes en de documentatie, maar doen geen in-depth tests en bespreking geen ervaringen. Maar omdat een blog met alleen tekst saai zou zijn, laat ik ook wat screenshots zien van de Publisher en het nieuwe Devportal, die tot nu toe ‘Store’ heette.

Figure 1 - The Management UI is quite familiarFigure 1: The Management UI is quite familiar

Een nieuwe versie

Maar wat is er nieuw aan deze versie? Er zijn best wel een aantal dingen te noemen: 

  • API monetisatie
  • JWT authenticatie
  • API Schema Validator
  • GraphQL API ondersteuning
  • Bot detectie
  • API Product

Laten we al deze functies één voor één langslopen.

WSO2 banner

Monetisatie

Monetisatie was al een optie in de WSO2 API Manager, maar met API Manager 3.0.0 is de ondersteuning voor API monetisatie uitgebreid. Via de beschikbare ‘pluggable extension points’ van de WSO2 API Manager kunnen we het nu integreren met onafhankelijke facturatiesoftware. Betalingsdienst Stripe is de standaard aanbieder bij de Out Of The Box (OOTB) versie van de API Manager. Een hele interessante ontwikkeling waar we komend jaar naar gaan kijken en die we waarschijnlijk ook op gaan nemen in de advanced WSO2 API Manager training die we een update gaat krijgen.

API’s beveiligen

Als aanvulling op de mogelijkheid om een Oauth2 token te gebruiken, krijgen we nu de alternatieve optie voor JWT Authentication bij het aanroepen van API’s. WSO2 API Manager ondersteunt het gebruik van de ‘self-contained and signed JWT formatted OAuth2.0 access tokens’ als API-inloggegevens. Als een API beveiligd is met OAuth2, dan kunnen de JWT tokens die het Developer Portal voor gebruikers uitgeeft gebruikt worden om API’s aan te roepen.

API Schema Validation

WSO2 API Manager biedt gebruikers nu de mogelijkheid om hun OpenAPI definities te gebruiken en request en response validation op te leggen zonder dat het extra werk kost (bijv.: bij de implementatie van custom mediations). Dit betekent dat het schema gevalideerd wordt voordat de call naar de backend gaat en als de validatie faalt, de gateway een 400 statuscode verstuurd (foute aanvraag). Datzelfde is van toepassing op het valideren van de respons en in dat geval zal er een 500 statuscode verzonden worden (interne serverfout).

GraphQL

Naast SOAP, REST en Websockets kunnen gebruikers nu ook GraphQL schema’s gebruiken om GraphQL API’s in WSO2 API Manager te ontwerpen. Zodoende kunnen gebruikers van de API Manager hun GraphQL services nu als API’s gaan managen. GraphQL is een nieuwe querytaal voor je API’s. Je kunt bijvoorbeeld een MySQL database nemen en er een GraphQL laag bovenop leggen, zodat de API aanvragen naar de database kan sturen. GraphQL is een open standaard waar Facebook een groot voorstander van is.

Bot detectie

Om de API Manager minder kwetsbaar te maken is bot detectie geïntroduceerd. Deze functie binnen de WSO2 API Manager geeft admins per e-mail bericht over aanvragen op open API’s en API’s zonder de juiste authenticatie. Deze kunnen door bots en aanvallers gedaan worden, maar kunnen ook gewoon ontstaan door een fout van een ontwikkelaar in het ontwikkelingsproces. Daarnaast zijn er nog andere verbeteringen in deze versie die te maken hebben met beveiliging, zoals de bescherming tegen json/xml bedreigingen.

Mixen en matchen

Nog een coole functie is de mogelijkheid om verschillende API’s te integreren en ze als een enkel product te presenteren. Zo kun je verschillende services in verschillende pakketten opnemen en aanbieden als afzonderlijke producten. Dit kan natuurlijk ook gedaan worden door verschillende API’s te definiëren, maar API Product is hier een nieuwe aanpak voor.

Terug naar de API manager

De API Manager 3.0.0 draait op Java 8 en 11. We hebben dit ook gezien bij de Identity Server 5.9.0, dus we verwachten dat het op dezelfde 4.5.1 Carbon core draait (ook bekend als Minsky). Dit zal inhouden dat we de deployment.toml hebben om configuratie eenvoudiger te maken. Hierdoor kun je alle configuratie aanpassingen in één bestand doorvoeren (deployment.toml) in plaats van de verschillende config-bestanden in de /conf map te moeten aanpassen. Het oude configuratiemodel is er nog steeds en kan ook gebruikt worden, maar dit is een hele grote verbetering.

Figure 2 - Logging in on the API Manager PublisherFigure 2: Logging in on the API Manager Publisher

De API Manager heeft een aantal verbeteringen en algemene veranderingen ondergaan, maar de meest zichtbare veranderingen zitten in de componenten die het meest gebruikt worden: de Publisher en Devportal (voorheen Store). Laten we kijken wat daar verandert.

Publisher

Zo lang als ik me kan herinneren is Publisher de plek waar je API’s definieert. Dit was altijd een drietrapsraket: definieer hoe de API eruit ziet, waar de API gaat runnen (en heen verwijst) en tot slot definieer je wie er in welke mate toegang krijgt. Dit is best een langdradig proces wat al gauw 10 tot 15 minuten kost om alles in te vullen. Tenminste, dat is mijn ervaring op basis van de de WSO2 API Manager training die ik geef.

De Jaggery apps, die deel van het product waren, zijn gemoderniseerd naar ReactJS. De Publisher heeft een nieuwe look gekregen en de behoorlijk veranderde aanpak voelt echt anders aan. We zien niet alleen een nieuwe optie bij het definiëren van een API (GraphQL SDL Schema), maar juist als we een nieuwe API gaan definiëren zien we het verschil pas echt. De nieuwe versie van de API Manager, versie 3.0.0, heeft iets weg van een afsnijroute.

Figure 3 Short track to API definitionFigure 3: Short track to API definition

Het maken en definiëren van een API wordt op strategisch niveau gedaan met slechts een paar invulvelden. Dit moet je invullen: naam, context, versie eindpunt en tiers, iets dat nu een business plan heet.

Dat is alles. Maar hoe zit het dan met de andere instellingen die nodig zijn? Dat wordt in de volgende stappen gedaan.

Standaard krijgt het een get/post/put/delete/head/ op de wildcard resource (/*).

Figure 4 The API is visible in Publisher and can be configured / finetunedFigure 4: The API is visible in Publisher and can be configured / finetuned
Figure 5 Config optionsFigure 5: Config options

Nadat je op ‘Create and Publish’ klikt is de API beschikbaar in het Devportal (voorheen heette dat de ‘Store’) en in de Publisher. In de Publisher kun je veranderingen aanbrengen aan de definitie van de API, net zoals we dat deden in de API Manager 2.6.0 als onderdeel in de doorlopende flow met de drie tabbladen die een API definieerden. Alle opties die in de eerdere versie beschikbaar waren, zijn nu te configureren als afzonderlijke opties. Inclusief de nieuwe monetisatie optie die erbij is gekomen.

Na het definiëren kunnen we ons richten op het abonneren in het Devportal. Mensen die bekend zijn met de Publisher zouden zich af kunnen vragen waarom de Analytics er niet meer zijn. Voorheen waren die namelijk in de Publisher opgenomen. Het antwoord hierop is dat ze nu in een apart Analytics Dashboard zitten, in plaats van dat ze in de Publisher te zien zijn.

Dag Store, hallo Devportal

De API Store bestaat niet meer en is vervangen door een Devportal.

Figure 6 Hello DevportalFigure 6: Hello Devportal

Dit is het overzicht wanneer je als admin bent ingelogd. Door op de API te klikken krijg je hetzelfde overzicht als dat we in de Publisher zien. Het ziet er net wat anders uit dan voorheen, maar de functionaliteit is in grote lijnen hetzelfde.

Figure 7 Looking at the API and about to subscribe and try outFigure 7: Looking at the API and about to subscribe and try out

Als we klaar zijn met het definiëren van de API gaan we naar de Store om ons te abonneren op een API met gebruik van een applicatie. Je kunt abonneren op een API met een applicatie die Oauth2 of JWT tokens genereert voor de autorisatie. Daarna kun je de API uitproberen met de bekende ‘Try it’-functie.

Een modern jasje

De nieuwe Publisher en Devportal zien er moderner en een stukje hipper uit. De verbeteringen die in de API manager doorgevoerd zijn, hebben meerdere voordelen die lopen van de mogelijkheid om het te runnen met een modernere Java versie (11) tot het makkelijker configureren d.m.v. het nieuwe toml-bestand. En nog veel, veel meer. Dit is de WSO2 API Manager die we kennen en waar we van houden, maar dan net wat beter.