Habilitar la compatibilidad con datos binarios mediante la consola de API Gateway - Amazon API Gateway

Habilitar la compatibilidad con datos binarios mediante la consola de API Gateway

En esta sección se explica cómo habilitar la compatibilidad con datos binarios en la consola de API Gateway. A modo de ejemplo, usaremos una API que está integrada con Amazon S3. Nos centraremos en las tareas para establecer tipos de medios compatibles y para especificar cómo debe controlarse la carga. Para obtener información detallada sobre cómo crear una API integrada con Amazon S3, consulte Tutorial: Creación de una API de REST como proxy de Amazon S3.

Para habilitar la compatibilidad con datos binarios utilizando la consola de API Gateway
  1. Establezca tipos de medios binarios para la API:

    1. Cree una nueva API o elija una API existente. En este ejemplo, asignaremos a la API el nombre de FileMan.

    2. Bajo la API seleccionada, en el panel de navegación principal, seleccione Configuración de API.

    3. En el panel Configuración de API, elija Administrar tipos de medios en la sección Tipos de medios binarios.

    4. Seleccione Añadir tipo de medio binario.

    5. Escriba un tipo de medio necesario (por ejemplo, image/png) en el campo de texto. Si es necesario, repita este paso para añadir más tipos de medios. Para admitir todos los tipos de medios binarios, especifique */*.

    6. Elija Guardar cambios.

  2. Establezca cómo se administran las cargas de mensajes para el método de API:

    1. Cree un nuevo recurso o elija uno existente en la API. Para este ejemplo, usaremos el recurso /{folder}/{item}.

    2. Cree un nuevo método o elija uno existente en el recurso. Como ejemplo, usaremos el método GET /{folder}/{item} integrado con la acción Object GET en Amazon S3.

    3. En Tratamiento de contenido, elija una opción.

      Configure el método GET en la consola de API Gateway.

      Elija Passthrough (Paso a través) si no desea convertir el cuerpo cuando el cliente y el backend acepten el mismo formato binario. Elija Convertir en texto para convertir el cuerpo binario en una cadena codificada en base64 cuando, por ejemplo, el backend requiera que una carga de solicitud binaria se pase como una propiedad JSON. Y elija Convertir en binario cuando el cliente envíe una cadena codificada en base64 y el backend requiera el formato binario original, o cuando el punto de conexión devuelva una cadena codificada en base64 y el cliente acepte únicamente la salida binaria.

    4. En Acceso directo de cuerpo de la solicitud, elija Cuando no hay plantillas definidas (recomendado) para activar el comportamiento de acceso directo en el cuerpo de la solicitud.

      También puede elegir Nunca. Esto significa que la API rechazará los datos con tipos de contenido que no tengan una plantilla de mapeo.

    5. Conserve el encabezado Accept de la solicitud entrante en la solicitud de integración. Debe hacerlo si ha establecido contentHandling en passthrough y desea invalidar esa configuración en tiempo de ejecución.

      Mantenga el encabezado Accept en la solicitud de integración.
    6. Para la conversión en texto, defina una plantilla de asignación para aplicar a los datos binarios codificados en base64 el formato requerido.

      Este es un ejemplo de plantilla de mapeo para convertirla en texto:

      { "operation": "thumbnail", "base64Image": "$input.body" }

      El formato de esta plantilla de asignación depende de los requisitos de punto de enlace de la entrada.

    7. Seleccione Guardar.