Condividi tramite


Simulare risposte fittizie in Internet

L'uso di Dev Proxy è il modo più semplice per simulare un'API. Indipendentemente dal fatto che si stia creando il front-end e l'API non sia ancora pronta, è necessario integrare il back-end con un servizio esterno oppure testare l'applicazione con risposte diverse, Dev Proxy consente di simulare le risposte api. Integrando l'API con i servizi cloud, è necessario esporre l'API in Internet in modo che il servizio cloud possa accedervi. Per esporre risposte fittizie simulate da Dev Proxy in Internet, usare Dev Tunnels. Questo articolo illustra come configurare risposte fittizie da esporre in Internet tramite Dev Tunnels.

Definire risposte fittizie

Per esporre risposte fittizie simulate da Dev Proxy in Internet, iniziare configurando le simulazioni.

Importante

In questo momento, Dev Tunnels supporta solo l'esposizione di risposte fittizie HTTP in Internet.

Creare risposte fittizie

Creare un file denominato mocks.json che contiene le risposte fittizie per l'API personalizzata. Ad esempio, per simulare una GET richiesta a http://api.contoso.com/products, definire:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/mockresponseplugin.mocksfile.schema.json",
  "mocks": [
    {
      "request": {
        "url": "http://api.contoso.com/products",
        "method": "GET"
      },
      "response": {
        "headers": [
          {
            "name": "content-type",
            "value": "application/json"
          }
        ],
        "body": [
          {
            "id": 1,
            "name": "Contoso Coffee Beans",
            "price": 12.99
          },
          {
            "id": 2,
            "name": "Contoso Espresso Machine",
            "price": 249.99
          }
        ]
      }
    }
  ]
}

È anche possibile simulare errori, risposte binarie o risposte condizionali usando statusCode, ntho bodyFragment.

Configurare MockResponsePlugin

Creare un file di configurazione del proxy di sviluppo denominato devproxyrc.json e abilitare :MockResponsePlugin

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mocksPlugin"
    }
  ],
  "urlsToWatch": [
    "http://api.contoso.com/*"
  ],
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

Importante

Per trovare la corrispondenza con più endpoint, usare i caratteri jolly in urlsToWatch. Per garantire la corrispondenza corretta, inserire prima simulazioni più specifiche in mocks.json.

Verificare la configurazione

Verificare che le simulazioni funzionino correttamente eseguendo Dev Proxy e inviando richieste all'API fittizia.

Avviare Dev Proxy, supponendo di aver salvato la configurazione del proxy di sviluppo in un file denominato devproxyrc.json nella directory di lavoro corrente:

devproxy

Testare la simulazione inviando una richiesta tramite Dev Proxy:

curl -x http://127.0.0.1:8000 http://api.contoso.com/products

Dovrebbe essere visualizzato l'elenco di prodotti fittizi definito in mocks.json.

Esporre l'API fittizia con Dev Tunnels

Per esporre risposte fittizie su Internet, avviare un tunnel di sviluppo mappato alla porta del proxy di sviluppo. Configurare il tunnel per usare il nome host configurato per l'API fittizia.

Avvertimento

Consentire l'accesso anonimo a un tunnel di sviluppo significa che chiunque su Internet è in grado di connettersi al server locale, se può indovinare l'ID del tunnel di sviluppo.

devtunnel host -p 8000 -a --host-header api.contoso.com

Questo comando esegue il mapping della porta del proxy di sviluppo a un URL HTTP pubblico. È ora possibile accedere all'API fittizia da qualsiasi posizione:

curl http://<your-tunnel-id>-8000.<region>.devtunnels.ms/products