

# Llamada a la API mediante un cliente API de REST
<a name="api-as-s3-proxy-test-using-postman"></a>

Para proporcionar un tutorial completo, ahora mostraremos cómo llamar a la API mediante [Postman](https://www.postman.com/), que admite la autorización de IAM de AWS.<a name="api-as-s3-proxy-test-using-postman-steps"></a>

**Para llamar a nuestra API de proxy de Amazon S3 mediante Postman**

1. Implemente o vuelva a implementar la API. Anote la URL base de la API que se muestra junto a **Invoke URL (URL de invocación)** en la parte superior de **Stage Editor (Editor de etapas)**.

1. Inicie Postman.

1. Elija **Autorización** y, a continuación, elija `AWS Signature`. Ingrese el ID de clave de acceso y la clave de acceso secreta del usuario de IAM en los campos de entrada **AccessKey** y **SecretKey**, respectivamente. Ingrese la Región de AWS en la que va a implementar la API en el cuadro de texto **Región de AWS**. Ingrese `execute-api` en el campo de entrada **Nombre del servicio**.

   Puede crear un par de claves desde la pestaña **Credenciales de seguridad** de su cuenta de usuario de IAM en la consola de administración de IAM.

1. Para agregar un bucket denominado `amzn-s3-demo-bucket` a su cuenta de Amazon S3 en la región `{region}`:

   1. Seleccione **PUT** en la lista desplegable de métodos y escriba la URL del método (`https://api-id.execute-api.aws-region.amazonaws.com/stage/folder-name`)

   1. Establezca el valor del encabezado `Content-Type` en `application/xml`. Es posible que necesite eliminar todos los encabezados existentes antes de configurar el tipo de contenido.

   1. Elija el elemento de menú **Body (Cuerpo)** y escriba el siguiente fragmento XML como cuerpo de la solicitud:

      ```
      <CreateBucketConfiguration> 
        <LocationConstraint>{region}</LocationConstraint> 
      </CreateBucketConfiguration>
      ```

   1. Elija **Send (Enviar)** para enviar la solicitud. Si todo va bien, debería recibir una respuesta `200 OK` con una carga vacía. 

1. Para añadir un archivo de texto a un bucket, siga las instrucciones anteriores. Si especifica el nombre de bucket de **amzn-s3-demo-bucket** para `{folder}` y el nombre de archivo **Readme.txt** para `{item}` en la dirección URL y proporciona la cadena de texto **Hello, World\$1** como contenido de archivo (con lo que se convierte en la carga de la solicitud), la respuesta será

   ```
   PUT /S3/amzn-s3-demo-bucket/Readme.txt HTTP/1.1
   Host: 9gn28ca086.execute-api.{region}.amazonaws.com
   Content-Type: application/xml
   X-Amz-Date: 20161015T062647Z
   Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=ccadb877bdb0d395ca38cc47e18a0d76bb5eaf17007d11e40bf6fb63d28c705b
   Cache-Control: no-cache
   Postman-Token: 6135d315-9cc4-8af8-1757-90871d00847e
   
   Hello, World!
   ```

   Si todo sale bien, debe recibir una respuesta `200 OK` con una carga vacía.

1. Para obtener el contenido del archivo `Readme.txt` que acaba de añadir al bucket `amzn-s3-demo-bucket`, envíe una solicitud GET como la siguiente:

   ```
   GET /S3/amzn-s3-demo-bucket/Readme.txt HTTP/1.1
   Host: 9gn28ca086.execute-api.{region}.amazonaws.com
   Content-Type: application/xml
   X-Amz-Date: 20161015T063759Z
   Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=ba09b72b585acf0e578e6ad02555c00e24b420b59025bc7bb8d3f7aed1471339
   Cache-Control: no-cache
   Postman-Token: d60fcb59-d335-52f7-0025-5bd96928098a
   ```

   Si todo sale bien, debe recibir una respuesta `200 OK` con la cadena de texto `Hello, World!` como la carga.

1. Para mostrar los elementos del bucket `amzn-s3-demo-bucket`, envíe la siguiente solicitud:

   ```
   GET /S3/amzn-s3-demo-bucket HTTP/1.1
   Host: 9gn28ca086.execute-api.{region}.amazonaws.com
   Content-Type: application/xml
   X-Amz-Date: 20161015T064324Z
   Authorization: AWS4-HMAC-SHA256 Credential=access-key-id/20161015/{region}/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=4ac9bd4574a14e01568134fd16814534d9951649d3a22b3b0db9f1f5cd4dd0ac
   Cache-Control: no-cache
   Postman-Token: 9c43020a-966f-61e1-81af-4c49ad8d1392
   ```

   Si todo sale bien, debe recibir una respuesta `200 OK` con una carga XML que muestre un único elemento en el bucket especificado, a menos que haya añadido más archivos al bucket antes de enviar esta solicitud.

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
       <Name>apig-demo-5</Name>
       <Prefix></Prefix>
       <Marker></Marker>
       <MaxKeys>1000</MaxKeys>
       <IsTruncated>false</IsTruncated>
       <Contents>
           <Key>Readme.txt</Key>
           <LastModified>2016-10-15T06:26:48.000Z</LastModified>
           <ETag>"65a8e27d8879283831b664bd8b7f0ad4"</ETag>
           <Size>13</Size>
           <Owner>
               <ID>06e4b09e9d...603addd12ee</ID>
               <DisplayName>user-name</DisplayName>
           </Owner>
           <StorageClass>STANDARD</StorageClass>
       </Contents>
   </ListBucketResult>
   ```

**nota**  
Para cargar o descargar una imagen, debe configurar el tratamiento de contenido como CONVERT\$1TO\$1BINARY.