Condividi tramite


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

Durante la compilazione dell'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ù solida.

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 proxy di sviluppo che controlla 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

Dalla pagina Panoramica dell'istanza del Centro API di Azure copiare il nome dell'istanza del Centro API, il nome del gruppo di risorse e l' ID sottoscrizione. Queste informazioni sono necessarie per configurare il ApiCenterProductionVersionPlugin, affinché possa connettersi all'istanza 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 le API a livello di produzione, è necessario abilitare ApiCenterProductionVersionPlugin nel file di configurazione del proxy di sviluppo. Aggiungere un reporter per creare un report delle API usate dall'app.

Abilitare ApiCenterProductionVersionPlugin

Nel file devproxyrc.json aggiungere la configurazione seguente:

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

Nelle proprietà subscriptionId, resourceGroupName e serviceName specificare le informazioni sull'istanza del Centro API di Azure.

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

Suggerimento

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

Aggiungere un reporter

ApiCenterProductionVersionPlugin genera un report delle API usate dall'app. Per visualizzare questo report, aggiungere un reporter al file di configurazione del proxy di sviluppo. Dev Proxy offre diversi reporter. In questo esempio viene usato il reporter di testo normale.

Aggiorna il file devproxyrc.json con un riferimento al reporter di testo normale:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "ApiCenterProductionVersionPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "apiCenterProductionVersionPlugin"
    },
    {
      "name": "PlainTextReporter",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.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 il proxy di sviluppo e consentire l'intercettazione delle richieste API dall'app. Il proxy di produzione 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 utilizza le informazioni del Centro API di Azure per determinare se le API utilizzate 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.

Esegui il proxy di sviluppo

Una volta connessi alla sottoscrizione di Azure, avviate il proxy di sviluppo. Se si avvia il proxy di sviluppo dalla stessa cartella in cui si trova il file devproxyrc.json, viene automaticamente caricata la configurazione. In alternativa, specificare il percorso del file di configurazione usando l'opzione --config-file.

Quando il proxy di sviluppo si avvia, verifica che possa connettersi alla tua 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

Usare l’app normalmente. Il proxy di sviluppo intercetta le richieste API e archivia in memoria le relative informazioni. Nella riga di comando in cui viene eseguito Il proxy di sviluppo vengono visualizzate le informazioni relative alle 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. Il proxy di sviluppo si connette all'istanza del Centro API e confronta le informazioni relative alle 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, il proxy di sviluppo 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

Usando il ApiCenterProductionVersionPlugin, è possibile verificare se l'app utilizza 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ù solida. È 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