Introducción al proxy de desarrollo

Dev Proxy es una herramienta de línea de comandos que le ayuda a simular comportamientos y errores de las API en la nube para ayudarle a crear aplicaciones resistentes.

En este tutorial, aprenderá a instalar, ejecutar y configurar proxy de desarrollo.

Si tiene dificultades, no dude en ponerse en contacto con nosotros mediante la generación de un nuevo problema y estamos encantados de ayudarle.

Instalación del proxy de desarrollo

La manera más fácil de instalar Proxy de desarrollo es mediante winget. Como alternativa, puede instalar el proxy de desarrollo manualmente.

Para instalar el proxy de desarrollo mediante winget, ejecute el siguiente comando:

winget install Microsoft.DevProxy --silent

Importante

El instalador del proxy de desarrollo agrega una nueva entrada a PATH. Para usar el proxy de desarrollo después de la instalación, debe reiniciar el símbolo del sistema para asegurarse de que las variables de entorno PATH se han actualizado.

Nota:

Para probar las características de versión preliminar más recientes, instale la versión beta del proxy de desarrollo.

Para instalar el proxy de desarrollo mediante winget, ejecute el siguiente comando:

winget install Microsoft.DevProxy.Beta --silent

Para ejecutar la versión beta del proxy de desarrollo, use devproxy-beta

La manera más fácil de instalar Dev Proxy es mediante Homebrew. Como alternativa, puede instalar el proxy de desarrollo manualmente.

Para instalar el proxy de desarrollo mediante Homebrew, ejecute los siguientes comandos:

brew tap microsoft/dev-proxy
brew install dev-proxy

Nota:

Para probar las características de versión preliminar más recientes, instale la versión beta del proxy de desarrollo.

Para instalar el proxy de desarrollo mediante Homebrew, ejecute los siguientes comandos:

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

Para ejecutar la versión beta del proxy de desarrollo, use devproxy-beta

La manera más fácil de instalar el proxy de desarrollo es mediante el script de instalación. Como alternativa, puede instalar el proxy de desarrollo manualmente.

Para instalar dev Proxy mediante el script de instalación, ejecute los siguientes comandos:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

Si usa PowerShell, ejecute el siguiente comando:

(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression

Nota:

Para probar las características de versión preliminar más recientes, instale la versión beta del proxy de desarrollo.

Para instalar dev Proxy mediante el script de instalación, ejecute los siguientes comandos:

bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"

Si usa PowerShell, ejecute el siguiente comando:

(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression

Para ejecutar la versión beta del proxy de desarrollo, use devproxy-beta

Iniciar proxy de desarrollo por primera vez

La primera vez que inicie el proxy de desarrollo en la máquina, hay algunos pasos que debe seguir para asegurarse de que el proxy de desarrollo puede interceptar las solicitudes de la máquina y responder correctamente. No tendrá que repetir estos pasos después de la primera ejecución.

  1. Inicie el proxy de desarrollo. Abra una sesión del símbolo del sistema. Escriba devproxy y presione ENTRAR.
  2. Certificado de confianza. Dev Proxy instala un certificado denominado Dev Proxy CA. Se muestra una advertencia. Seleccione Yes esta opción para confirmar que desea instalar el certificado. El proxy de desarrollo usa este certificado para descifrar el tráfico HTTPS enviado desde la máquina.
  3. Permitir el acceso al firewall. Firewall de Windows bloquea el proxy. Se muestra una advertencia. Seleccione Allow access el botón para permitir el tráfico a través del firewall.
  1. Inicie el proxy de desarrollo. Abra una sesión del símbolo del sistema. Escriba devproxy y presione ENTRAR.
  2. Certificado de confianza. Dev Proxy instala un certificado denominado Dev Proxy CA, que usa para descifrar el tráfico HTTPS enviado desde la máquina. Se muestra una advertencia. Presione y para confirmar que desea confiar en el certificado.
  3. Acepte conexiones entrantes. Se muestra una advertencia. Seleccione Allow esta opción para confirmar.
  1. Inicie el proxy de desarrollo. Abra una sesión del símbolo del sistema. Escriba devproxy y presione ENTRAR.

  2. Certificado de confianza. Dev Proxy usa un certificado SSL personalizado para descifrar el tráfico HTTPS enviado desde la máquina.

    Importante

    Las instrucciones siguientes son para Ubuntu. En el caso de otras distribuciones de Linux, los pasos pueden diferir.

    Para instalar y confiar en el certificado, en un nuevo símbolo del sistema, ejecute los siguientes comandos:

    # Export Dev Proxy root certificate
    openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
    # Install the certificate
    sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/
    # Update certificates
    sudo update-ca-certificates
    

El símbolo del sistema muestra la siguiente salida:

 info    8 error responses loaded from devproxy-errors.json
 info    Dev Proxy API listening on http://localhost:8897...
 info    Dev Proxy 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

De forma predeterminada, el proxy de desarrollo está configurado para:

  • Interceptación de solicitudes realizadas a cualquier punto de conexión de API de marcador de posición JSON
  • Simulación de respuestas de error de API y limitación de API con una tasa de errores del 50 %

Interceptar solicitudes

El proxy de desarrollo interceptará las solicitudes realizadas a direcciones URL conocidas desde cualquier aplicación de la máquina. Cuando se detecta una solicitud, Dev Proxy pasa la solicitud a la API (no realiza ninguna acción) o devuelve una respuesta.

  • Envíe una solicitud a la API de marcador de posición JSON desde la línea de comandos y vuelva al proceso de proxy para ver la salida.

En PowerShell, use el Invoke-WebRequest cmdlet para enviar una solicitud GET a la API de marcador de posición JSON.

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

Si usa curl, envíe una solicitud GET a json Placeholder API mediante el comando siguiente.

curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts

También puede usar un cliente de API como Postman para enviar una solicitud GET a https://jsonplaceholder.typicode.com/posts.

Se muestra una entrada con información básica sobre la solicitud entrante y la acción que realizó el proxy de desarrollo. Proxy de desarrollo simula una respuesta de error con una probabilidad del 50 %. Si la solicitud no devuelve un error, el proxy de desarrollo lo pasa a través.

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through
  • Repita el envío de solicitudes a la API de marcador de posición JSON desde la línea de comandos hasta que se devuelva una respuesta de error.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 403 Forbidden

Cuando el proxy de desarrollo devuelve una respuesta de error, se muestra una chaos etiqueta en la entrada.

  • Pruebe a enviar solicitudes a otros puntos de conexión disponibles en la API de marcador de posición JSON.
    • https://jsonplaceholder.typicode.com/posts
    • https://jsonplaceholder.typicode.com/posts/1
    • https://jsonplaceholder.typicode.com/posts/1/comments
    • https://jsonplaceholder.typicode.com/comments?postId=1

Detener el proxy de desarrollo de forma segura

Cuando ya no necesite que el proxy de desarrollo se esté ejecutando, siempre debe detenerlo de forma segura.

  • Presione Ctrl + C para detener de forma segura el proxy de desarrollo.

Si apaga la sesión del símbolo del sistema, El proxy de desarrollo no anula el registro correctamente como proxy del sistema y puede experimentar algunos problemas comunes.

Actualización de las direcciones URL que se van a ver

De forma predeterminada, el proxy de desarrollo está configurado para interceptar cualquier solicitud realizada en la API de marcador de posición JSON. Puede configurar el proxy de desarrollo para interceptar las solicitudes a cualquier API HTTP.

  • Abra el archivo de configuración del proxy de desarrollo ejecutando en la línea de comandos: devproxy config.
  • Busque la urlsToWatch matriz.
"urlsToWatch": [
  "https://jsonplaceholder.typicode.com/*"
],

La urlsToWatch matriz representa las direcciones URL conocidas. El proxy de desarrollo supervisa las solicitudes de la entrada actual a cualquier punto de conexión. La entrada usa un asterisco después de la dirección URL como carácter comodín. Al agregar más entradas a esta matriz, se expanden las direcciones URL que busca el proxy de desarrollo.

Consideremos que no desea que el proxy de desarrollo intercepte las solicitudes realizadas a un punto de conexión específico.

  • Agregue una nueva entrada a la urlsToWatch matriz.
"urlsToWatch": [
  "!https://jsonplaceholder.typicode.com/posts/2",
  "https://jsonplaceholder.typicode.com/*"
],

El signo de exclamación al principio de la dirección URL indica al proxy de desarrollo que omita las solicitudes que coincidan con esa dirección URL. Puede mezclar y hacer coincidir signos de exclamación y asteriscos en una dirección URL.

  • En la línea de comandos, escriba y presione devproxy Entrar para iniciar el proxy de desarrollo.
  • Envíe una solicitud a https://jsonplaceholder.typicode.com/posts/2 desde la línea de comandos y vea la salida.

Cuando una dirección URL omitida coincide con una solicitud, el proxy de desarrollo no procesa la solicitud y, por tanto, no se muestra ninguna salida.

El orden en el que se enumeran las direcciones URL en la urlsToWatch matriz es importante. Dev Proxy procesa estas direcciones URL en orden. Cuando una dirección URL coincide, no se vuelve a procesar. Por lo tanto, colocar la dirección URL primero garantiza que la solicitud se omita antes de procesar la siguiente dirección URL.

Tasa de errores de cambio

De forma predeterminada, el proxy de desarrollo está configurado para producir errores en las solicitudes con una probabilidad del 50 % de las direcciones URL que se están viendo. Puede aumentar o disminuir la posibilidad de que una solicitud devuelva una respuesta de error.

Vamos a actualizar la tasa de errores para que cada solicitud a la API de marcador de posición JSON devuelva una respuesta de error.

  • Abra el archivo de configuración del proxy de desarrollo ejecutando en la línea de comandos: devproxy config.
  • Busque la propiedad rate y actualice el valor de 50 a 100.

El devproxyrc.json archivo contiene opciones de configuración que se usan al iniciar el proxy de desarrollo. Al cambiar las opciones de configuración, siempre debe detener e iniciar el proxy de desarrollo para que se conserven los cambios.

  • En la línea de comandos, escriba y presione devproxy Entrar para iniciar el proxy de desarrollo.
  • Envíe una solicitud a la API de marcador de posición JSON desde la línea de comandos y vea la salida.

Como alternativa, puede invalidar las opciones de configuración en tiempo de ejecución mediante la opción al iniciar el --failure-rate proxy de desarrollo.

devproxy --failure-rate 100
  • Presione Ctrl + C para detener de forma segura el proxy de desarrollo.

Simulación de la limitación

De forma predeterminada, el proxy de desarrollo devuelve un intervalo de respuestas de error genéricas 400 y 500. Puede personalizar estas respuestas de error a sus propias necesidades.

Dev Proxy usa complementos para habilitar diferentes comportamientos de API, de forma predeterminada, habilitamos dos complementos para usted.

Vamos a cambiar la configuración para que el proxy de desarrollo siempre devuelva una 429 Too Many requests respuesta de error para simular la limitación.

En primer lugar, busquemos la ubicación del archivo que contiene las definiciones de error.

  • Abra el archivo de configuración del proxy de desarrollo ejecutando en la línea de comandos: devproxy config.
  • En la plugins matriz, busque la entrada del complemento GenericRandomErrorPlugin . Anote el valor de la configSection propiedad .
  • Más abajo el archivo, busque el genericRandomErrorPlugin objeto . Anote el valor de la errorsFile propiedad .

Sugerencia

La ubicación del archivo de errores también se muestra en la salida al iniciar el proxy de desarrollo.

  • En la carpeta de instalación del proxy de desarrollo, abra devproxy-errors.json en un editor de texto.
  • Quite todas las entradas de respuesta de la responses matriz, excepto la 429 respuesta.
{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
  "errors": [
    {
      "request": {
        "url": "https://jsonplaceholder.typicode.com/*"
      },
      "responses": [
        {
          "statusCode": 429,
          "body": {
            "message": "Too Many Requests",
            "details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
          },
          "headers": {
            "Retry-After": "@dynamic"
          }
        }
      ]
    }
  ]
}
  • En la línea de comandos, escriba y presione devproxy Entrar para iniciar el proxy de desarrollo.
  • Envíe una solicitud a la API de marcador de posición JSON desde la línea de comandos y vea la salida.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 429 TooManyRequests
  • Presione Ctrl + C para detener de forma segura el proxy de desarrollo.

Paso siguiente

Aprenda a usar el proxy de desarrollo para simular errores aleatorios para su propia aplicación.