Creación de una especificación de despliegue de API

Descubra cómo crear una especificación de API (una definición legible por máquina de una API en formato JSON) para su uso con gateway de API.

Debe crear una especificación de despliegue antes de desplegar una API en un gateway de API. Cada despliegue de API tiene una especificación de despliegue.

Cada especificación de despliegue de API describe un juego de recursos y los métodos (por ejemplo, GET, PUT) que se pueden realizar en cada recurso.

Puede utilizar un único gateway de API como front-end para varios servicios de backend mediante:

  • Creación de un único despliegue de API en el gateway de API, con una especificación de despliegue de API que define varios servicios de backend.
  • Creación de varios despliegues de API en el mismo gateway de API, cada uno con una especificación de despliegue de API que define uno (o varios) servicios de backend.

Normalmente, los servicios de backend estarán en la misma VCN que el gateway en el que se despliega una API. Sin embargo, no es obligatorio. En la especificación de despliegue de API, puede describir servicios de backend que se encuentren en una subred privada o pública en su arrendamiento, así como servicios de fuera del arrendamiento (incluso en Internet). Sea cual sea su ubicación, los servicios de backend deben poder direccionarse desde la subred que contiene el gateway de API en el que se despliega la API. Por ejemplo, si el servicio de backend está en Internet, la VCN debe tener un gateway de Internet para permitir que el gateway de API direccione las solicitudes al servicio de backend.

Puede crear una especificación de despliegue de API:

  • Mediante cuadros de diálogo en la consola al crear un despliegue de API.
  • Mediante su editor de JSON preferido para crear un archivo JSON independiente. A continuación, puede especificar el archivo JSON al utilizar la consola, la CLI o la API para crear un despliegue de API.
  • Mediante un archivo de descripción de la API que cargue para un recurso de API. El archivo de descripción de la API proporciona algunos valores iniciales para la especificación de despliegue de API, que puede modificar y ampliar al desplegar el recurso de API en un gateway de API. Consulte Creación de un recurso de API con una descripción de la API.

Las instrucciones de este tema muestran una especificación de despliegue de API básico con un backend único, solo una ruta y ninguna política de solicitud ni de respuesta. Consulte Especificación de despliegue de API con varios backends de ejemplo para obtener una especificación de despliegue de API más común que incluya varios backends, cada uno con una o varias rutas.

Además, puede agregar políticas de solicitud y respuesta que se aplican a las rutas en una especificación de despliegue de API (consulte Agregación de políticas de solicitud y políticas de respuesta a especificaciones de despliegue de API).

Uso de un editor de JSON para crear una especificación de despliegue de API en un archivo JSON independiente

Siga estos pasos para crear una especificación de despliegue de API en un archivo JSON:

  1. Con su editor de JSON preferido, cree la especificación de despliegue API en un archivo JSON con el formato:

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "<backend-type>",
            "<backend-target>": "<identifier>"
          },
          "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".
    • <backend-type> especifica el tipo de servicio de backend. Los valores válidos son ORACLE_FUNCTIONS_BACKEND, HTTP_BACKEND y STOCK_RESPONSE_BACKEND.
    • <backend-target> y <identifier> especifican el servicio de backend. Los valores válidos para <backend-target> y <identifier> dependen del valor de <backend-type>, como se indica a continuación:

    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"
          }
        }
      ]
    }

    Para ver un ejemplo más complejo en el que se definen varios backends, consulte Especificación de despliegue de API con varios backends de ejemplo.

  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.

Uso de un archivo de descripción de la API para crear una especificación de despliegue de API

Para crear una especificación de despliegue de API basada en un archivo de descripción de la API que cargue para un recurso de API, consulte Creación de un recurso de API con una descripción de la API

El archivo de descripción de la API proporciona algunos valores iniciales para la especificación de despliegue de API, que puede modificar y ampliar al desplegar el recurso de API en un gateway de API.

Especificación de despliegue de API con varios backends de ejemplo

Puede crear un único despliegue de API en un gateway de API, con una especificación de despliegue de API que defina varios servicios de backend.

Por ejemplo, la siguiente especificación de despliegue de API define una función sencilla de Hello World sin servidor en OCI Functions como backend, y la API de National Weather Service como segundo backend.

{
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
        "type": "ORACLE_FUNCTIONS_BACKEND",
        "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    },
    {
      "path": "/weather",
      "methods": ["GET"],
      "backend": {
        "type": "HTTP_BACKEND",
        "url": "https://api.weather.gov"
      }
    }
  ]
}