Partager via


Comment vérifier si mon application utilise des API de niveau production

Lors de la génération de votre application, vous utilisez peut-être des API qui sont toujours en préversion. Vous utilisez souvent des API en préversion lorsque vous intégrez de nouvelles fonctionnalités qui sont créées avec votre application. Avant de publier votre application en production, vous devez vous assurer d’utiliser des API de niveau production. Lorsque vous utilisez des API stables, prises en charge et couvertes par des contrats de niveau de service (SLA), votre application est plus robuste.

Pour vérifier si votre application utilise des API de niveau production, vous pouvez utiliser le ApiCenterProductionVersionPlugin plug-in. Ce plug-in compare les informations sur les demandes d’API de votre application avec les informations du Centre des API Azure et les rapports sur toutes les demandes d’API hors production. Il recommande également la version de production des API que vous utilisez.

Capture d’écran d’une console montrant le proxy de développement qui vérifie si les requêtes d’API enregistrées correspondent aux API de version de production inscrites dans le Centre des API Azure.

Avant de commencer

Pour détecter les demandes d’API hors production, vous devez disposer d’une instance du Centre d’API Azure avec des informations sur les API que vous utilisez dans votre organisation.

Créer une instance du Centre des API Azure

Avant de commencer, créez une instance du Centre des API Azure et inscrivez des API que vous utilisez dans votre organisation. Pour chaque API, définissez les versions que vous utilisez et spécifiez leur phase de cycle de vie.

Capture d’écran du Centre des API Azure montrant une API avec différentes versions

L’utilisation ApiCenterProductionVersionPlugin de ces informations permet de vérifier si les API, que votre application utilise, appartiennent à des API de production ou de non-production.

Copier les informations du Centre API

Dans la page Vue d’ensemble de l’instance du Centre API Azure, copiez le nom de l’instance du Centre API, le nom du groupe de ressources et l’ID d’abonnement. Vous avez besoin de ces informations pour configurer le ApiCenterProductionVersionPlugin afin qu’il puisse se connecter à votre instance Centre des API Azure.

Capture d’écran de la page vue d’ensemble du Centre des API Azure avec plusieurs propriétés mises en surbrillance

Configurer Dev Proxy

Pour vérifier si votre application utilise des API de niveau production, vous devez activer le ApiCenterProductionVersionPlugin dans le fichier de configuration du proxy de développement. Pour créer un rapport sur les API utilisées par votre application, ajoutez un rapporteur.

Activer le ApiCenterProductionVersionPlugin

Dans le fichier devproxyrc.json, ajoutez la configuration suivante :

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Dans les propriétés subscriptionId, resourceGroupName et serviceName, fournissez les informations relatives à votre instance du Centre API Azure.

Dans la propriété urlsToWatch, spécifiez les URL que votre application utilise.

Conseil

Utilisez l’extension Visual Studio Code Dev Proxy Toolkit pour gérer facilement la configuration Dev Proxy.

Ajouter un rapporteur

Le ApiCenterProductionVersionPlugin produit un rapport sur les API utilisées par votre application. Pour afficher ce rapport, ajoutez un rapporteur à votre fichier de configuration Dev Proxy. Dev Proxy propose plusieurs rapporteurs. Dans cet exemple, vous utilisez le rapporteur en texte brut.

Mettez à jour votre fichier devproxyrc.json avec une référence au rapporteur en texte brut :

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.19.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://jsonplaceholder.typicode.com/*"
  ],
  "apiCenterProductionVersionPlugin": {
    "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
    "resourceGroupName": "demo",
    "serviceName": "contoso-api-center",
    "workspaceName": "default"
  }
}

Vérifier si votre application utilise des API de niveau production

Pour vérifier si votre application utilise des API de niveau production, vous devez vous connecter à votre abonnement Azure, exécuter le proxy de développement et le laisser intercepter les requêtes d’API provenant de votre application. Le proxy de développement compare ensuite les informations sur les requêtes d’API avec les informations du Centre des API Azure, et signale les API hors production.

Connectez-vous à un abonnement Azure

Le proxy de développement utilise des informations du Centre des API Azure pour déterminer si les API que votre application utilise sont de niveau production. Pour obtenir ces informations, il a besoin d’une connexion à votre abonnement Azure. Vous pouvez vous connecter à votre abonnement Azure de plusieurs façons.

Exécuter Dev Proxy

Après vous être connecté à votre abonnement Azure, démarrez Dev Proxy. Si vous démarrez Dev Proxy à partir du dossier où se trouve votre fichier devproxyrc.json, il charge automatiquement la configuration. Sinon, spécifiez le chemin d’accès au fichier de configuration à l’aide de l’option --config-file.

Lors de son démarrage, Dev Proxy vérifie qu’il peut se connecter à votre abonnement Azure. Une fois la connexion établie, un message similaire à celui-ci s’affiche :

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Appuyez sur r pour démarrer l’enregistrement des requêtes d’API provenant de votre application.

Utiliser votre application

Utilisez votre application comme vous le feriez normalement. Dev Proxy intercepte les requêtes d’API et stocke les informations sur celles-ci en mémoire. Sur la ligne de commande où Dev Proxy s’exécute, vous devez voir des informations sur les requêtes d’API effectuées par votre application.

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through

Vérifier les versions d’API

Arrêtez l’enregistrement en appuyant sur s. Dev Proxy se connecte à l’instance du Centre API, et compare les informations sur les requêtes aux informations contenues dans le Centre API.

 info    Plugin ApiCenterProductionVersionPlugin connecting to Azure...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

◉ Recording... 

 req   ╭ GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/users?api-version=beta
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests use production APIs as defined in API Center...
 info    Loading APIs from API Center...
 info    Analyzing recorded requests...
 warn    Request GET https://jsonplaceholder.typicode.com/users?api-version=beta uses API version beta which is defined as Preview. Upgrade to a production version of the API. Recommended versions: v1.0
 info    DONE

Lorsque Dev Proxy termine son analyse, il crée un rapport dans un fichier nommé ApiCenterProductionVersionPlugin_PlainTextReporter.txt avec le contenu suivant :

Non-production APIs:

  GET https://jsonplaceholder.typicode.com/users?api-version=beta
  
Production APIs:

  GET https://jsonplaceholder.typicode.com/posts?api-version=v1.0

Résumé

À l’aide des ApiCenterProductionVersionPluginAPI de niveau production, vous pouvez vérifier si votre application utilise des API de niveau production. Le plug-in compare les informations sur les requêtes d’API de votre application avec les informations du Centre des API Azure et signale les requêtes d’API hors production. Il recommande également la version de production des API que vous utilisez. La vérification des API que votre application utilise vous permet de vous assurer que votre application utilise des API stables prises en charge et couvertes par des contrats SLA, ce qui rend votre application plus robuste. Vous pouvez exécuter cette vérification manuellement, ou l’intégrer à votre pipeline CI/CD pour vous assurer que votre application utilise des API de niveau production avant sa publication en production.

Plus d’informations