Compartir a través de


Búsqueda de api de instantáneas

Con el Centro de API de Azure puede catalogar las API que se usan en su organización. En cualquier momento, puede indicar qué API usa en su organización. También puede indicar dónde se encuentra la API en su ciclo de vida y quién debe ponerse en contacto si hay problemas. En resumen, tener un catálogo actualizado de API le ayuda a mejorar la gobernanza, el cumplimiento y la posición de seguridad.

Al compilar la aplicación, especialmente si va a integrar nuevos escenarios, es posible que use API que no estén registradas en el Centro de API de Azure. Estas API se denominan API ocultas. Las API ocultas son API que no están registradas en la organización. Pueden ser API que aún no están registradas o podrían ser API que no están diseñadas para usarse en la organización.

Para comprobar si la aplicación usa las API de sombra, puedes usar el ApiCenterOnboardingPlugin complemento. Este complemento analiza las solicitudes de API de la aplicación e informa de las API que no están registradas en el Centro de API. Además, puede incorporar directamente nuevas API al Centro de API de Azure.

Recorte de pantalla de un símbolo del sistema que muestra la comprobación de Dev Proxy si las solicitudes de API grabadas están registradas en el Centro de API de Azure.

Antes de comenzar

Para detectar las API de sombra, debe tener una instancia del Centro de API de Azure con información sobre las API que usa en su organización.

Creación de una instancia del Centro de API de Azure

Antes de empezar, cree una instancia del Centro de API de Azure y registre las API que use en su organización.

Captura de pantalla del Centro de API de Azure con varias API que se usan en la organización.

ApiCenterOnboardingPlugin Usa esta información para comprobar si las API, que usa la aplicación, están registradas en la organización.

Copia de la información del Centro de API

En la página Información general de la instancia del Centro de API de Azure, copie el nombre de la instancia del Centro de API, el nombre del grupo de recursos y el identificador de suscripción. Necesita esta información para configurar ApiCenterOnboardingPlugin para que pueda conectarse a la instancia del Centro de API de Azure.

Recorte de pantalla de la página de información general del Centro de API de Azure con varias propiedades resaltadas.

Configuración de Dev Proxy

Para comprobar si la aplicación usa las API ocultas, debe habilitar el ApiCenterOnboardingPlugin en el archivo de configuración de Dev Proxy. Para crear un informe de las API que usa la aplicación, agregue un informador.

Habilitación del ApiCenterOnboardingPlugin

En el archivo devproxyrc.json, agregue la siguiente configuración:

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

En las propiedades subscriptionId, resourceGroupName y serviceName, proporcione la información sobre la instancia del Centro de API de Azure.

En la propiedad urlsToWatch, especifique las direcciones URL que usa la aplicación.

Sugerencia

Use la extensión de Visual Studio Code del kit de herramientas de Dev Proxy para administrar fácilmente la configuración de Dev Proxy.

Adición de un informador

El ApiCenterOnboardingPlugin genera un informe de las API que usa la aplicación. Para ver este informe, agregue un informador al archivo de configuración de Dev Proxy. Dev Proxy ofrece varios informadores. En este ejemplo, usará el informador de texto sin formato.

Actualice el archivo devproxyrc.json con una referencia al informador de texto sin formato:

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

Comprobación de si la aplicación usa API ocultas

Para comprobar si la aplicación usa API ocultas, conéctese a su suscripción de Azure, ejecute Dev Proxy y deje que intercepte las solicitudes de API de la aplicación. Después, Dev Proxy compara la información sobre las solicitudes de API con la información del Centro de API de Azure e informa sobre las API que no están registradas en el Centro de API.

Conexión a su suscripción de Azure

Dev Proxy usa información del Centro de API de Azure para determinar si la aplicación usa las API ocultas. Para obtener esta información, necesita una conexión a la suscripción de Azure. Puede conectarse a la suscripción de Azure de varias maneras.

Ejecución de Dev Proxy

Después de conectarse a la suscripción de Azure, inicie Dev Proxy. Si inicia Dev Proxy desde la misma carpeta donde se encuentra el archivo devproxyrc.json, se carga automáticamente la configuración. De lo contrario, especifique la ruta de acceso al archivo de configuración mediante la opción --config-file.

Cuando se inicia Dev Proxy, comprueba que puede conectarse a la suscripción de Azure. Cuando la conexión se realiza correctamente, verá un mensaje similar al siguiente:

 info    Plugin ApiCenterOnboardingPlugin 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

Presione r para iniciar la grabación de solicitudes de API desde la aplicación.

Uso de la aplicación

Use la aplicación como lo haría normalmente. Dev Proxy intercepta las solicitudes de API y almacena información sobre ellas en la memoria. En la línea de comandos donde se ejecuta Dev Proxy, debería ver información sobre las solicitudes de API que realiza la aplicación.

 info    Plugin ApiCenterOnboardingPlugin 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   ╰ Passed through

 req   ╭ DELETE https://jsonplaceholder.typicode.com/posts/1
 api   ╰ Passed through

Comprobación de las API ocultas

Detenga la grabación presionando s. Dev Proxy se conecta a la instancia del Centro de API y compara la información sobre las solicitudes con la información del Centro de API.

 info    Plugin ApiCenterOnboardingPlugin 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   ╰ Passed through

 req   ╭ DELETE https://jsonplaceholder.typicode.com/posts/1
 api   ╰ Passed through
○ Stopped recording
 info    Checking if recorded API requests belong to APIs in API Center...
 info    Loading APIs from API Center...
 info    Loading API definitions from API Center...

Cuando Dev Proxy finaliza su análisis, crea un informe en un archivo denominado ApiCenterOnboardingPlugin_PlainTextReporter.txt con el siguiente contenido:

New APIs that aren't registered in Azure API Center:

https://jsonplaceholder.typicode.com:
  DELETE https://jsonplaceholder.typicode.com/posts/1

APIs that are already registered in Azure API Center:

GET https://jsonplaceholder.typicode.com/posts

Incorporación automática de las API ocultas

El ApiCenterOnboardingPlugin no solo puede detectar API ocultas, sino también incorporarlas automáticamente al Centro de API. Para incorporar automáticamente las API ocultas, en el archivo de configuración de Dev Proxy, actualice el createApicEntryForNewApis a true.

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

Al ejecutar Dev Proxy con el createApicEntryForNewApis establecido en true, crea automáticamente nuevas entradas de API en el Centro de API de Azure para las API ocultas que detecta.

Recorte de pantalla del Centro de API que muestra una API recién incorporada.

Incorporación automática de las API ocultas con la especificación de OpenAPI

Al elegir incorporar automáticamente las API ocultas al Centro de API, puede hacer que Dev Proxy genere la especificación de OpenAPI para la API. La incorporación de API con especificaciones de OpenAPI acelera la incorporación de puntos de conexión que faltan y proporciona la información necesaria sobre la API. Cuando el ApiCenterOnboardingPlugin detecta que Dev Proxy ha creado una nueva especificación de OpenAPI, la asocia a la API correspondiente en el Centro de API.

Para generar automáticamente especificaciones de OpenAPI para las API incorporadas, actualice la configuración de Dev Proxy para incluir el OpenApiSpecGeneratorPlugin.

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

Importante

Dev Proxy ejecuta complementos en el orden en que se registran en la configuración. Primero debe registrar el OpenApiSpecGeneratorPlugin para que pueda crear especificaciones de OpenAPI antes de que el ApiCenterOnboardingPlugin incorpore nuevas API.

Al ejecutar Dev Proxy con esta configuración, crea automáticamente nuevas entradas de API en el Centro de API de Azure para las API ocultas que detecta. Para cada nueva API, Dev Proxy genera una especificación de OpenAPI y la asocia a la API incorporada correspondiente en el Centro de API.

 info    Plugin ApiCenterOnboardingPlugin 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   ╰ Passed through

 req   ╭ DELETE https://jsonplaceholder.typicode.com/posts/1
 api   ╰ Passed through
○ Stopped recording
 info    Creating OpenAPI spec from recorded requests...
 info    Created OpenAPI spec file jsonplaceholder.typicode.com-20240614104931.json
 info    Checking if recorded API requests belong to APIs in API Center...
 info    Loading APIs from API Center...
 info    Loading API definitions from API Center...
 info    New APIs that aren't registered in Azure API Center:

https://jsonplaceholder.typicode.com:
  DELETE https://jsonplaceholder.typicode.com/posts/1
 info    Creating new API entries in API Center...
 info      Creating API new-jsonplaceholder-typicode-com-1718354977 for https://jsonplaceholder.typicode.com...
 info    DONE

Recorte de pantalla del Centro de API de Azure que muestra una API recién incorporada con una especificación de OpenAPI.

Resumen

ApiCenterOnboardingPluginCon , puede comprobar si la aplicación usa las API de instantáneas. El complemento analiza las solicitudes de API de la aplicación e informa sobre las solicitudes de API que no están registradas en el Centro de API de Azure. El complemento le permite incorporar fácilmente las API que faltan al Centro de API. Al combinar el complemento ApiCenterOnboardingPlugin con el OpenApiSpecGeneratorPlugin, puede generar automáticamente especificaciones de OpenAPI para las API recién incorporadas. Puede ejecutar esta comprobación manualmente o integrarla con la canalización de CI/CD para asegurarse de que la aplicación usa las API registradas antes de publicarla en producción.

Más información