

# Habilitar la compatibilidad con datos binarios mediante la consola de API Gateway
<a name="api-gateway-payload-encodings-configure-with-console"></a>

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](integrating-api-with-aws-services-s3.md).

**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`.

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

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

   1. Seleccione **Añadir tipo de medio binario**.

   1. 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 `*/*`.

   1. Seleccione **Save changes (Guardar cambios)**.

1. 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}`.

   1. 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. 

   1. En **Tratamiento de contenido**, elija una opción. 

         
![\[Configure el método GET en la consola de API Gateway.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/binary-support-content-handling-on-method-new-console.png)

      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.

   1. 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.

   1. 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.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/binary-support-preserve-incoming-accept-header-new-console.png)

   1. 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 conexión de la entrada.

   1. Seleccione **Save**.