Implementar la conexión de prueba

La conexión de prueba es un punto de entrada simple que se puede definir para un conector a fin de utilizarlo con Azure Logic Apps, Power Automate o Power Apps. Al exponer una operación para la conexión de prueba, el conector puede proporcionar una validación en tiempo de diseño y en tiempo de ejecución de los parámetros de conexión.

Requisitos previos

Incorporar una nueva operación de conexión de prueba

La incorporación de una operación para TestConnection es un proceso muy sencillo. Tiene la posibilidad de usar cualquier operación existente como medio para probar la conexión, o bien agregar una operación específica cuyo trabajo sea solo probar los parámetros de conexión. La operación debe ser "get" y admitir una llamada sin parámetros o con parámetros codificados de forma rígida.

Agregar una nueva operación para este propósito podría tener este aspecto en la especificación de OpenAPI:

    "/diagnostics/testconnection": {
      "get": {
        "tags": [ "Diagnostics" ],
        "operationId": "TestMyAPIConnection",
        "consumes": [],
        "produces": [],
        "responses": {
          "200": { "description": "OK" },
          "default": { "description": "Operation Failed." }
        },
        "x-ms-visibility": "internal"
      }
    }

Importante

Observe que esta operación está marcada como internal. Si agrega un nuevo punto de entrada para este propósito, es muy recomendable ocultar esta operación al usuario marcando la visibilidad como tal.

El punto de conexión que se va a usar como prueba de conexión se debe identificar agregando una extensión a la API en el nivel superior, tal como se indica a continuación:

 "x-ms-capabilities": {
    "testConnection": {
      "operationId": "TestMyAPIConnection",
      "parameters": {}
    }
  }

El operationId especificado en este atributo debe existir en esta misma especificación de OpenAPI para ser válido.

Reutilizar una operación existente para la conexión de prueba

A menudo es más sencillo y manejable identificar una operación existente que pueda validar la viabilidad de la conexión sin incurrir en excesivos costes o latencia. Esto se puede realizar sin necesidad de agregar una operación, indicando simplemente la operación que se va a usar y los parámetros que se van a pasar (si los hubiera).

En el ejemplo siguiente, se usa una operación "get" existente denominada GetTables, que se debe ejecutar sin problemas si la conexión es válida y los parámetros son correctos. Para asegurarse de que la operación de conexión de prueba se ejecute lo más rápido posible, el ejemplo agrega también un parámetro a la llamada para especificar que solo se debe devolver la primera fila.

 "x-ms-capabilities": {
    "testConnection": {
      "operationId": "GetTables",
      "parameters": {
        "$top": 1
      }
    }
  }

Implementar la conexión de prueba

Si tiene que implementar una conexión de prueba y no hay ninguna otra operación existente adecuada para este fin, puede hacerlo con una llamada de back-end muy sencilla. La operación no necesita tomar ningún parámetro ni devolver contenido alguno. La ruta de acceso de la dirección URL tampoco es importante y se puede seleccionar en función de sus preferencias. La única medida correcta para una llamada de conexión de prueba es una respuesta correcta (200, por ejemplo) de la llamada HTTP. Dentro de la operación de conexión de prueba, el contrato simplemente solicita que el conector valide el contexto de autenticación y los parámetros de conexión.

Esto se puede realizar consultando algo sencillo en el back-end, lo que utilizará los parámetros de autenticación y cualquier base de datos o ámbito que pueda estar implicado. La consulta de la fila superior de una simple tabla es un buen ejemplo de un enfoque de conexión de prueba.

Proporcionar comentarios

Agradecemos enormemente los comentarios sobre problemas con nuestra plataforma de conectores o nuevas ideas de características. Para enviar comentarios, vaya a Enviar problemas u obtener ayuda con los conectores y seleccione el tipo de comentario.