Azure API Management
Annoncée en Mai dernier et disponible pour les développeurs depuis Septembre, l'offre de service Azure API Management de Microsoft permet à une entreprise de mettre à disposition ses APIs aux développeurs internes ou externes, à ses partenaires et au public de manière simple, rapide et sécurisée.
L'idée derrière cette longue phrase est simple : faire progresser l'utilisation d'API en facilitant leur développement, déploiement et exposition grâce à la plateforme Azure.
Pour mieux comprendre l'utilité de ce service, prenons pour exemple une entreprise qui possède une API interne d'envoi d'email et souhaite l'exposer en mode SaaS avec :
- Un accès gratuit et limité pour les nouveaux utilisateurs
- Un suivi de la consommation
- Une gestion centralisée des opérations disponibles, des utilisateurs, des règles de sécurités, etc…
Instance Azure API Management
Pour commencer, il nous faut créer une instance d'Azure API Management sur le portail Azure.
Attention, la valeur spécifié dans le champ URL fera partie intégrante du nom de domaine de votre portail suivant ce pattern : <URL>.portal.azure-api.net.
En générale, il est préférable de renseigner un nom commun tel que le nom de l'entreprise pour garder une certaine cohérence entre les différentes API publiées. Ainsi chacune sera accessible suivant ce pattern : <URL>.portal.azure-api.net/<API suffixe>.
Après avoir patienté une quinzaine de minutes (oui c'est très long) notre instance est créée. A présent l'interface centrale de gestion de notre API est accessible via le portail Azure ou l'URL suivante : <URL>.portal.azure-api.net/admin.
Par défaut, une instance possède une API nommée « Echo » qui renvoie le contenu de la requête et un abonné qui est l'administrateur.
Création d'une API proxy
Maintenant nous pouvons créer l'API d'envoi d'email qui servira de proxy entre les utilisateurs et l'API interne de l'entreprise.
A ce moment-là, seule la configuration de l'API est renseignée. Pour ajouter les opérations que l'on souhaite exposer, il suffit d'aller dans l'onglet Opérations et de cliquer sur Ajouter Opération.
Nous allons maintenant créer une opération d'envoi d'email. Comme le contenu de ce dernier peut être conséquent, il est logique d'utiliser le verbe HTTP POST.
Dans le cas d'une opération acceptant un corps de requête (type POST ou PUT), celui-ci n'est pas validé et sert uniquement pour la documentation du portail public.
Création des produits
Ensuite, il nous faut définir les produits qui vont représenter les différents modes d'accès à notre API.
Maintenant que le produit est créé, il faut lui définir les règles qui le caractérisent. Pour cela, il suffit d'aller dans Règles et sélectionner à minima le produit correspondant. Voici comment appliquer un quota de 1000 appels/semaine avec une limite de 10 appels/minute :
Petite subtilité, lorsqu'une limite périodique est appliquée, le temps de renouvellement débute lors du 1er appel et non lorsque la limite est atteinte !
Une fois vos produits créés, n'oubliez pas de leurs attribuer les groupes d'utilisateurs, les lier avec vos APIs et enfin les publier pour les rendre accessible.
Portail public
L'offre Azure API Management comporte un portail public entièrement personnalisable à l'image d'un CMS.
Celui-ci permet aux développeurs d'intégrer plus facilement les APIs publiés notamment avec :
- Une documentation et des exemples de codes générés à partir des métadonnées des opérations
- Une console
- Une section de report de bug si besoin
Monitoring
La configuration mise en place, l'outil indispensable de tout environnement de production est celui qui permet de faire monitoring. Celui-ci est disponible dans l'interface centrale de gestion et offre quelques informations de base telle que :
- Un résumé du nombre d'appels, d'erreurs, d'accès au cache et du temps de réponse
- Une répartition géographique des appels
- Une vue détaillée par utilisateur, produit, API et opération
Cependant, il n'est pas possible d'obtenir les informations précises du type adresse IP, message d'erreur, etc…
Attention, celui-ci n'est pas en temps réel.
Comme vous pouvez le constater, la force d'Azure API Management est de proposer un service clé en main anticipant nombre de vos besoins avec :
- Une gestion centralisée (monitoring, sécurité, quota, alerte, portail public)
- Un monitoring (mais qui n'est pas temps réel)
- Un service d'email pour les notifications et alertes
- Un portail public avec :
- Une documentation et des exemples de codes générés à partir des métadonnées des opérations
- Une console pour faciliter l'intégration de vos APIs
- Une section de report de bug
- Un compte de stockage pour les médias
- La possibilité d'utiliser des fournisseurs d'authentifications tiers (Facebook, Google, Microsoft ou Twitter)
L'ensemble des manipulations est réalisé à partir d'une interface graphique. Il est aussi possible de les effectuer via l'Azure API Management REST API qui est activable dans l'onglet Sécurité de l'interface de gestion centralisée.
Pour suivre les dernières nouveautés d'Azure API Management : https://twitter.com/azureapimgmt
Voilà !
A bientôt,
Commentaires