Agregación de una URL de HTTP o HTTPS como backend de gateway de API

Descubra cómo crear un despliegue de API para acceder a las URL de HTTP y HTTPS con el gateway de API.

Un requisito común es crear una API con una URL HTTP o HTTPS de un servicio backend un gateway de API que proporcione acceso de front-end a dichas URL de backend.

Tras usar el servicio de gateway de API para crear un gateway de API, puede crear un despliegue de API para acceder a las URL de HTTP y HTTPS.

La URL HTTP o HTTPS que especifique para el servicio backend puede ser:

  • URL de un servicio que está disponible públicamente en Internet.
  • URL de un servicio de Oracle Cloud Infrastructure (por ejemplo, OCI Functions)
  • URL de un servicio en su propia red privada o interna (por ejemplo, conectada a VCN por FastConnect).

La URL que proporciona en la especificación de despliegue de API para identificar el servicio backend HTTP o HTTPS puede incluir el nombre del host o la dirección IP del host. Si proporciona el nombre de host, utilice la propiedad Opciones DHCP de la subred del gateway de API para controlar cómo los nombres de host incluidos en la especificación de despliegue de API se resuelven en direcciones IP en tiempo de ejecución:

  • Si el nombre de host de un servicio backend se publica públicamente en Internet o si el nombre de host pertenece a una instancia del mismo VCN, seleccione una opción DHCP definida para la subred del gateway de API que tenga Internet y solucionador VCN proporcionados por Oracle como tipo DNS. Esta es la opción por defecto si no selecciona explícitamente un juego de opciones DHCP.
  • Si el nombre de host es para un servicio backend en su propia red privada o interna, seleccione una opción DHCP definida para la subred del gateway de API que tenga solucionador personalizado como tipo DNS y tenga la URL de un servidor DNS adecuado que pueda resolver el nombre de host en una dirección IP.

Tenga en cuenta que puede cambiar los detalles del servidor DNS en el juego de opciones DHCP especificado para la subred de un gateway de API. El gateway de API se volverá a configurar para utilizar los detalles actualizados del servidor DNS en un plazo de dos horas. Para obtener más información sobre cómo resolver nombres de host en direcciones IP, consulte DNS en su red virtual en la nube y Opciones DHCP.

Puede agregar backends HTTP y HTTPS a una especificación de despliegue de API mediante:

  • uso de la Consola
  • edición de un archivo JSON

Uso de la consola para agregar backends HTTP o HTTPS a una especificación de despliegue de API

Para agregar un backend HTTP o HTTPS a una especificación de despliegue de API mediante la consola:

  1. Cree o actualice un despliegue de API con la consola, seleccione la opciónDesde cero e introduzca los detalles en la página Información básica.

    Para obtener más información, consulte Despliegue de una API en un gateway de API a través de la creación de un despliegue de API y Actualización de un gateway de API o un despliegue de API.

  2. En la página Autenticación, especifique las opciones de autenticación.

    Para obtener más información sobre las opciones de autenticación, consulte Agregación de autenticación y autorización a despliegues de API.

  3. En la página Rutas, cree una nueva ruta y especifique:

    • Ruta de acceso: ruta de acceso al servicio de backend para llamadas de API mediante los métodos enumerados. Tenga en cuenta que la ruta de acceso especificada:

    • Métodos: uno o varios métodos aceptados por el servicio de backend. Por ejemplo, GET, PUT.
    • Agregar un único backend o Agregar varios backends: indica si se deben enrutar todas las solicitudes al mismo backend o si se deben enrutar solicitudes a distintos backends según la variable de contexto y las reglas que introduzca.

      En estas instrucciones se supone que desea utilizar un único backend, por lo que seleccione Agregar un único backend. Como alternativa, si desea utilizar backends diferentes, seleccione Agregar varios backends y siga las instrucciones de Uso de la consola para agregar una selección de backend dinámica a una especificación de despliegue de API.

    • Tipo de backend: el tipo de servicio de backend es HTTP.
    • URL: dirección URL que desee utilizar como servicio de backend, con el formato <protocol>://<host>:<port>/<path>, donde:

      • <protocol> es http o https.
      • <host> es el nombre del host o la dirección IP del host del servicio backend. Por ejemplo, api.weather.gov. Si proporciona un nombre de host, utilice la propiedad Opciones DHCP de la subred del gateway de API para controlar cómo se resuelven los nombres de host en las direcciones IP en tiempo de ejecución.
      • <port> es opcionalmente un número de puerto.
      • <path> es opcionalmente un subdirectorio o un archivo en el host en el que se encuentra el servicio de backend.

        Tenga en cuenta que <path> no debe contener parámetros directamente, pero puede contener variables de contexto. Para obtener más información y ejemplos sobre cómo utilizar variables de contexto para sustituir parámetros de ruta de acceso, consulta y cabecera en la ruta de acceso, consulte Agregación de variables de contexto a políticas y definiciones de backend HTTP.

      Por ejemplo, "url": "https://api.weather.gov".

    • Timeout de establecimiento de conexión en segundos: opcionalmente, un valor de punto flotante que indica el tiempo permitido (en segundos) al establecer una conexión con el servicio de backend. El valor mínimo es 0 y el máximo es 75. Si no se especifica, se utilizará el valor por defecto de 60 segundos.
    • Timeout de transmisión de solicitud en segundos: opcionalmente, un valor de punto flotante que indica el tiempo permitido (en segundos) al transmitir una solicitud al servicio de backend. El valor mínimo es 1 y el máximo es 300. Si no se especifica, se utilizará el valor por defecto de 10 segundos.
    • Timeout de respuesta de lectura en segundos: opcionalmente, un valor de punto flotante que indica el tiempo permitido (en segundos) al leer una respuesta del servicio de backend. El valor mínimo es 1 y el máximo es 300. Si no se especifica, se utilizará el valor por defecto de 10 segundos.
    • Desactivar verificación SSL: indica si se debe desactivar la verificación SSL al comunicarse con el servicio de backend. Por defecto, esta opción no está seleccionada.

    En este ejemplo, la ruta define un servicio de tiempo como backend HTTP.

    Campo: Introducir:
    Ruta de acceso: /weather
    Métodos: GET
    Tipo de backend: HTTP
    URL: https://api.weather.gov
    Timeout de establecimiento de conexión en segundos: 45
    Timeout de transmisión de solicitud en segundos: 15
    Timeout de respuesta de lectura en segundos: 15
    Desactivar verificación de SSL: (No seleccionado)
  4. (Opcional) Haga clic en Otra ruta para introducir detalles de rutas adicionales.
  5. Haga clic en Siguiente para revisar los detalles introducidos para el despliegue de API.
  6. Haga clic en Crear o en Guardar cambios para crear o actualizar el despliegue de API.
  7. (Opcional) Confirme que la API se ha desplegado correctamente llamándola. Para ello, consulte Llamada a una API desplegada en un gateway de API.

Edición de un archivo JSON para agregar backends HTTP o HTTPS a una especificación de despliegue de API

Siga estos pasos para agregar un backend HTTP o HTTPS a una especificación de despliegue de API en un archivo JSON:

  1. Con el editor de JSON de su elección, cree una nueva especificación de despliegue de API (consulte Creación de una especificación de despliegue de API) con el formato:

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "<identifier>",
            "connectTimeoutInSeconds": <seconds>,
            "readTimeoutInSeconds": <seconds>,						
            "sendTimeoutInSeconds": <seconds>,
            "isSSLVerifyDisabled": <true|false>
          },
          "requestPolicies": {},
        }
      ]
    }

    donde:

    • "requestPolicies" especifica políticas opcionales para controlar el comportamiento de un despliegue de API. Si desea aplicar políticas a todas las rutas de una especificación de despliegue de API, coloque las políticas fuera de la sección routes. Si desea aplicar las políticas únicamente a una ruta concreta, coloque las políticas en la sección routes. Consulte Agregación de políticas de solicitud y políticas de respuesta a especificaciones de despliegue de API.
    • <api-route-path> especifica una ruta de acceso al servicio de backend para las llamadas de API mediante los métodos enumerados. Tenga en cuenta que la ruta de acceso especificada:

    • <method-list> especifica uno o varios métodos aceptados por el servicio de backend, separados por comas. Por ejemplo, "GET, PUT".
    • "type": "HTTP_BACKEND" especifica si el backend de gateway de API es una URL de HTTP o HTTPS.
    • "url: "<identifier>" especifica la URL que desea utilizar como servicio de backend, con el formato <protocol>://<host>:<port>/<path>, donde:

      • <protocol> es http o https.
      • <host> es el nombre del host o la dirección IP del host del servicio backend. Por ejemplo, api.weather.gov. Si proporciona un nombre de host, utilice la propiedad Opciones DHCP de la subred del gateway de API para controlar cómo se resuelven los nombres de host en las direcciones IP en tiempo de ejecución.
      • <port> es opcionalmente un número de puerto.
      • <path> es opcionalmente un subdirectorio o un archivo en el host en el que se encuentra el servicio de backend.

        Tenga en cuenta que <path> no debe contener parámetros directamente, pero puede contener variables de contexto. Para obtener más información y ejemplos sobre cómo utilizar variables de contexto para sustituir parámetros de ruta de acceso, consulta y cabecera en la ruta de acceso, consulte Agregación de variables de contexto a políticas y definiciones de backend HTTP.

      Por ejemplo, "url": "https://api.weather.gov".

    • "connectTimeoutInSeconds": <seconds> es un valor de punto flotante opcional que indica el tiempo que se permite (en segundos) al establecer una conexión con el servicio de backend. El valor mínimo es 0 y el máximo es 75. Si no se especifica, se utilizará el valor por defecto de 60 segundos.
    • "readTimeoutInSeconds": <seconds> es un valor de punto flotante opcional que indica el tiempo que se permite (en segundos) al leer una respuesta del servicio de backend. El valor mínimo es 0 y el máximo es 300. Si no se especifica, se utilizará el valor por defecto de 10 segundos.
    • "sendTimeoutInSeconds": <seconds> es un valor de punto flotante opcional que indica el tiempo que se permite (en segundos) al transmitir una solicitud al servicio de backend. El valor mínimo es 0 y el máximo es 300. Si no se especifica, se utilizará el valor por defecto de 10 segundos.
    • "isSSLVerifyDisabled": <true|false> es un valor booleano opcional (true o false) que indica si se debe desactivar la verificación SSL al comunicarse con el servicio backend. Si no se especifica, se utilizará el valor por defecto de false.

    Por ejemplo, la siguiente especificación de despliegue de API básico define un servicio de tiempo como backend HTTP:

    {
      "routes": [
        {
          "path": "/weather",
          "methods": ["GET"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "https://api.weather.gov",
            "connectTimeoutInSeconds": 45,
            "readTimeoutInSeconds": 15,						
            "sendTimeoutInSeconds": 15,
            "isSSLVerifyDisabled": false
          }
        }
      ]
    }
  2. Guarde el archivo JSON que contiene la especificación de despliegue de API.
  3. Utilice la especificación de despliegue de API al crear o actualizar un despliegue de API de las siguientes formas:

    • Especificando el archivo JSON en la consola al seleccionar la opción Cargar API existente.
    • Especificando el archivo JSON en una solicitud para la API REST de gateway de API.

    Para obtener más información, consulte Despliegue de una API en un gateway de API mediante la creación de un despliegue de API.

  4. (Opcional) Confirme que la API se ha desplegado llamándola (consulte Llamada a una API desplegada en un gateway de API).