Come verificare se l'app usa API a livello di produzione

Quando si compila l'app, è possibile usare le API ancora in anteprima. Spesso si usano le API di anteprima quando si esegue l'integrazione con nuove funzionalità compilate insieme all'app. Prima di rilasciare l'app nell'ambiente di produzione, è necessario assicurarsi di usare le API a livello di produzione. Quando si usano API stabili, supportate e coperte dai contratti di servizio, l'app è più affidabile.

Per verificare se l'app usa API a livello di produzione, è possibile usare il ApiCenterProductionVersionPlugin plug-in. Questo plug-in confronta le informazioni sulle richieste API dall'app con le informazioni del Centro API di Azure e segnala eventuali richieste API non di produzione. Consiglia anche la versione di produzione delle API in uso.

Screenshot di una console che mostra il controllo del proxy di sviluppo se le richieste API registrate corrispondono alle API della versione di produzione registrate nel Centro API di Azure.

Prima di iniziare

Per rilevare le richieste API non di produzione, è necessario disporre di un'istanza del Centro API di Azure con informazioni sulle API usate nell'organizzazione.

Creare un'istanza del Centro API di Azure

Prima di iniziare, creare un'istanza del Centro API di Azure e registrare le API usate nell'organizzazione. Per ogni API, definire le versioni usate e specificarne la fase del ciclo di vita.

Screenshot del Centro API di Azure che mostra un'API con versioni diverse

ApiCenterProductionVersionPlugin Usa queste informazioni per verificare se le API, che l'app usa, appartengono alle API di produzione o non di produzione.

Copiare le informazioni del Centro API

Nella pagina Panoramica dell'istanza del Centro API di Azure copiare il nome dell'istanza di Centro API, il nome del gruppo di risorse e l'ID sottoscrizione. Queste informazioni sono necessarie per configurare in modo che possa connettersi all'istanza ApiCenterProductionVersionPlugin del Centro API di Azure.

Screenshot della pagina di panoramica del Centro API di Azure con diverse proprietà evidenziate

Configurare il proxy di sviluppo

Per verificare se l'app usa API a livello di produzione, è necessario abilitare ApiCenterProductionVersionPlugin nel file di configurazione del proxy di sviluppo. Per creare un report delle API usate dall'app, aggiungere un reporter.

Abilitare ApiCenterProductionVersionPlugin

devproxyrc.json Nel file aggiungere la configurazione seguente:

{
  "$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"
  }
}

subscriptionIdNelle proprietà , resourceGroupNamee serviceName specificare le informazioni sull'istanza del Centro API di Azure.

urlsToWatch Nella proprietà specificare gli URL usati dall'app.

Suggerimento

Usare l'estensione Dev Proxy Toolkit di Visual Studio Code per gestire facilmente la configurazione del proxy di sviluppo.

Aggiungere un giornalista

Genera ApiCenterProductionVersionPlugin un report delle API che l'app usa. Per visualizzare questo report, aggiungere un reporter al file di configurazione del proxy di sviluppo. Dev Proxy offre diversi reporter. In questo esempio si usa il reporter di testo normale.

Aggiornare il devproxyrc.json file con un riferimento al reporter in testo normale:

{
  "$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"
  }
}

Controllare se l'app usa API a livello di produzione

Per verificare se l'app usa API a livello di produzione, è necessario connettersi alla sottoscrizione di Azure, eseguire Dev Proxy e consentire l'intercettazione delle richieste API dall'app. Dev Proxy confronta quindi le informazioni sulle richieste API con le informazioni del Centro API di Azure e segnala eventuali API non di produzione.

Connettersi alla sottoscrizione di Azure

Dev Proxy usa le informazioni del Centro API di Azure per determinare se le API usate dall'app sono a livello di produzione. Per ottenere queste informazioni, è necessaria una connessione alla sottoscrizione di Azure. È possibile connettersi alla sottoscrizione di Azure in diversi modi.

Eseguire il proxy di sviluppo

Dopo la connessione alla sottoscrizione di Azure, avviare Dev Proxy. Se si avvia Dev Proxy dalla stessa cartella in cui si trova il devproxyrc.json file, carica automaticamente la configurazione. In caso contrario, specificare il percorso del file di configurazione usando l'opzione --config-file .

All'avvio di Dev Proxy verifica che possa connettersi alla sottoscrizione di Azure. Quando la connessione ha esito positivo, viene visualizzato un messaggio simile al seguente:

 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

Premere r per avviare la registrazione delle richieste API dall'app.

Usare l'app

Usa la tua app come normalmente fai. Dev Proxy intercetta le richieste API e li archivia in memoria. Nella riga di comando in cui viene eseguito Il proxy di sviluppo dovrebbero essere visualizzate informazioni sulle richieste API eseguite dall'app.

 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

Controllare le versioni dell'API

Arrestare la registrazione premendo s. Dev Proxy si connette all'istanza di Centro API e confronta le informazioni sulle richieste con le informazioni del Centro 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

Al termine dell'analisi, Dev Proxy crea un report in un file denominato ApiCenterProductionVersionPlugin_PlainTextReporter.txt con il contenuto seguente:

Non-production APIs:

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

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

Riepilogo

ApiCenterProductionVersionPluginUsando , è possibile verificare se l'app usa API a livello di produzione. Il plug-in confronta le informazioni sulle richieste API dall'app con le informazioni del Centro API di Azure e segnala eventuali richieste API non di produzione. Consiglia anche la versione di produzione delle API in uso. La verifica delle API in uso per l'app consente di assicurarsi che l'app usi API stabili, supportate e coperte dai contratti di servizio, rendendo l'app più affidabile. È possibile eseguire questo controllo manualmente o integrarlo con la pipeline CI/CD per assicurarsi che l'app usi LE API a livello di produzione prima di rilasciarla nell'ambiente di produzione.

Ulteriori informazioni