Agregación de respuestas de stock como backend de gateway de API

Descubra cómo definir una ruta a un backend de respuesta de stock con gateway de API.

Por lo general, querrá verificar que una API se ha desplegado correctamente en un gateway de API sin tener que configurar un servicio de backend. Un enfoque es definir una ruta en la especificación de despliegue de API que tenga una ruta de acceso a un backend ficticio. Al recibir una solicitud a esa ruta de acceso, el gateway de API actúa como backend y devuelve una respuesta de stock que usted ha especificado.

Del mismo modo, hay algunas situaciones en un despliegue de producción en las que querrá que una ruta de acceso concreta de una ruta devuelva de forma coherente la misma respuesta de stock sin enviar una solicitud a un backend. Por ejemplo, si desea que una llamada a una ruta de acceso devuelva siempre un código de estado HTTP específico en la respuesta.

Con el servicio de gateway de API, puede definir una ruta de acceso al backend de respuesta de stock que siempre devuelve:

  • el mismo código de estado HTTP
  • los mismos campos de cabecera HTTP (pares nombre-valor)
  • el mismo contenido en el cuerpo de la respuesta

Tenga en cuenta las siguientes restricciones a la hora de definir respuestas de stock y backends de respuestas de stock:

  • La longitud de cada nombre de cabecera no debe superar 1 KB.
  • La longitud de cada valor de cabecera no debe superar los 4 KB.
  • Ningún cuerpo de respuesta debe superar los 5 KB de longitud (incluida cualquier codificación).
  • Una definición de backend de respuesta de stock no debe incluir más de 50 campos de cabecera.

Puede agregar backends de respuesta de stock 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 respuestas de stock a una especificación de despliegue de API

Siga estos pasos para agregar respuestas de stock 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 del servicio de backend es Stock Response.
    • Código de estado: cualquier código de respuesta HTTP válido. Por ejemplo: 200
    • Cuerpo: opcionalmente, especifica el contenido del cuerpo de respuesta en un formato adecuado. Por ejemplo:

      • Si especifica un nombre de cabecera y un valor de cabecera de Content-Type y text/plain respectivamente, el cuerpo de respuesta puede ser "Hello world".
      • Si especifica un nombre de cabecera y un valor de cabecera de Content-Type y application/json respectivamente, el cuerpo de respuesta puede ser {"username": "john.doe"}.

      Tenga en cuenta que el cuerpo de respuesta no debe superar los 5 KB de longitud (incluida cualquier codificación).

    • Nombre de cabecera y valor de cabecera: si lo desea, puede especificar el nombre de una cabecera de respuesta HTTP y su valor. Por ejemplo, un nombre Content-Type y un valor de application/json. Puede especificar varios pares de nombre y valor de cabecera (hasta un máximo de 50). Tenga en cuenta que en cada caso:

      • La longitud de nombre de cabecera no debe superar 1 KB.
      • La longitud del valor de cabecera no debe superar los 4 KB.

    En este ejemplo, una solicitud para la ruta de acceso /test devuelve un código de estado 200 y una carga útil de JSON en el cuerpo de la respuesta.

    Campo: Introducir:
    Ruta de acceso: /test
    Métodos: GET
    Tipo de backend: Stock Response
    Código de estado: 200
    Cuerpo: {"username": "john.doe"}
    Nombre de cabecera: Content-Type
    Valor de cabecera: application/json

    En este ejemplo, una solicitud para la ruta de acceso /test-redirect devuelve un código de estado 302 y una URL temporal en la cabecera Location de la respuesta.

    Campo: Introducir:
    Ruta de acceso: /test-redirect
    Métodos: GET
    Tipo de backend: Stock Response
    Código de estado: 302
    Cuerpo: N/A
    Nombre de cabecera: Location
    Valor de cabecera: http://www.example.com
  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 respuestas de stock a una especificación de despliegue de API

Siga estos pasos para agregar respuestas de stock a una especificación de despliegue de API en un archivo JSON:

  1. Con su editor de JSON preferido, edite la especificación de despliegue de API existente a la que desea agregar un backend de respuesta de stock o cree una nueva especificación de despliegue de API (consulte Creación de una especificación de despliegue de API).

    Por ejemplo, la siguiente especificación de despliegue de API básico define una función sencilla de Hello World sin servidor en OCI Functions como un único backend:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
  2. En la sección routes, incluya una nueva sección path para un backend de respuesta de stock:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        },
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "STOCK_RESPONSE_BACKEND",
            "status": <http-response-code>,
            "headers": [{
              "name": "<header-name>",
              "value": "<header-value>"
            }],
            "body": "<body-content>"
          }
        }
      ]
    }

    donde:

    • <api-route-path> especifica una ruta de acceso al backend de respuesta de stock para 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 backend de respuesta de stock, separados por comas. Por ejemplo, "GET, PUT".
    • "type": "STOCK_RESPONSE_BACKEND" indica que el gateway de API actuará como backend y devolverá la respuesta de stock que usted defina (el código de estado, los campos de cabecera y el contenido del cuerpo).
    • <http-response-code> es cualquier código de respuesta HTTP válido. Por ejemplo: 200
    • "name": "<header-name>", "value": "<header-value>" opcionalmente especifica el nombre de una cabecera de respuesta HTTP y su valor. Por ejemplo, "name": "Content-Type", "value":"application/json". Puede especificar varios pares "name": "<header-name>", "value": "<header-value>" en la sección headers: (hasta un máximo de 50). Tenga en cuenta que en cada caso:
      • La longitud de <header-name> no debe superar 1 KB.
      • La longitud de <header-value> no debe superar los 4 KB.
    • "body": "<body-content>" opcionalmente especifica el contenido del cuerpo de respuesta, en un formato adecuado. Por ejemplo:
      • Si la cabecera Content-Type es text/plain, el cuerpo de respuesta puede ser "body": "Hello world".
      • Si la cabecera Content-Type es application/json, el cuerpo de respuesta puede ser "body": "{\"username\": \"john.doe\"}". En el caso de una respuesta JSON, tenga en cuenta que se deben escapar las comillas de la respuesta con una barra invertida (\).

      Tenga en cuenta que la longitud de <body-content> no debe superar los 5 KB (incluida cualquier codificación).

    En este ejemplo, una solicitud para la ruta de acceso /test devuelve un código de estado 200 y una carga útil de JSON en el cuerpo de la respuesta.

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        },
        {
          "path": "/test",
          "methods": ["GET"],
          "backend": {
            "type": "STOCK_RESPONSE_BACKEND",
            "status": 200,
            "headers": [{
              "name": "Content-Type",
              "value": "application/json"
            }],
            "body" : "{\"username\": \"john.doe\"}"
          }
        }
      ]
    }

    En este ejemplo, una solicitud para la ruta de acceso /test-redirect devuelve un código de estado 302 y una URL temporal en la cabecera Location de la respuesta. En este ejemplo, también se muestra que puede crear una especificación de despliegue de API con una única ruta para el backend de tipo STOCK_RESPONSE_BACKEND.

    {
      "routes": [
        {
          "path": "/test-redirect",
          "methods": ["GET"],
          "backend": {
            "type": "STOCK_RESPONSE_BACKEND",
            "status": 302,
            "headers": [{
              "name": "Location",
              "value": "http://www.example.com"
            }]
          }
        }
      ]
    }
  3. Guarde el archivo JSON que contiene la especificación de despliegue de API.
  4. 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 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.

  5. (Opcional) Confirme que la API se ha desplegado correctamente llamándola. Para ello, consulte Llamada a una API desplegada en un gateway de API.