

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Realizar solicitudes HTTP a Amazon SWF
<a name="UsingJSON-swf"></a>

Si no utiliza ninguno de los AWS SDKs, puede realizar operaciones de Amazon Simple Workflow Service (Amazon SWF) a través de HTTP mediante el método de solicitud POST. El método POST requiere que especifique la operación en el encabezado de la solicitud y proporcione los datos para la operación en formato JSON en el cuerpo de la solicitud. 

## Contenido de los encabezados HTTP
<a name="HTTPHeader"></a>

Amazon SWF requiere que figure la siguiente información en el encabezado de una solicitud HTTP:
+ `host`: el punto de conexión de Amazon SWF. 
+ `x-amz-date`Debe proporcionar la marca de tiempo en el `Date` encabezado HTTP o en el AWS `x-amz-date header` (algunas bibliotecas de clientes HTTP no le permiten configurar el `Date` encabezado). Cuando hay un encabezado `x-amz-date` presente, el sistema hace caso omiso de cualquier encabezado `Date` al autenticar la solicitud.

  La fecha debe especificarse en uno de los tres formatos siguientes, como se especifica en HTTP/1.1 RFC:
  + Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, actualizado por RFC 1123)
  + Sunday, 06-Nov-94 08:49:37 GMT (RFC 850, obsoleto en RFC 1036)
  + Sun Nov 6 08:49:37 1994 (formato asctime() de ANSI C)
+ `x-amzn-authorization`: los parámetros de solicitud firmados en el formato:

  ```
  AWS3 AWSAccessKeyId=####,Algorithm=HmacSHA256, [,SignedHeaders=Header1;Header2;...]
  Signature=S(StringToSign)
  ```

  `AWS3`— Se trata de una etiqueta AWS específica de la implementación que indica la versión de autenticación utilizada para firmar la solicitud (actualmente, en Amazon SWF, este valor es siempre). `AWS3`

  `AWSAccessKeyId`— Su AWS ID de clave de acceso.

  `Algorithm`— El algoritmo utilizado para crear el valor HMAC-SHA del string-to-sign, como o. `HmacSHA256` `HmacSHA1`

  `Signature`— Base64 (algoritmo (,)) StringToSign. SigningKey Para obtener más información, consulte [Cálculo de la firma HMAC-SHA para Amazon SWF](HMACAuth-swf.md).

  `SignedHeaders`— (Opcional) Si está presente, debe contener una lista de todos los encabezados HTTP utilizados en el cálculo HttpHeaders canonicalizado. Debe utilizar un solo punto y coma (;) (carácter ASCII 59) para delimitar los valores de la lista. 
+  `x-amz-target`: el servicio de destino de la solicitud y la operación de los datos, en el formato: 

  ` com.amazonaws.swf.service.model.SimpleWorkflowService. + {{<action>}} `

   Por ejemplo, `com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain` 
+ `content-type`: el tipo debe especificar JSON y el conjunto de caracteres, como `application/json; charset=UTF-8`

 A continuación se muestra un ejemplo de un encabezado en una solicitud HTTP para crear un dominio. 

```
POST http://swf.us-east-1.amazonaws.com/ HTTP/1.1
Host: swf.us-east-1.amazonaws.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0E)
Accept: application/json, text/javascript, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
X-Amz-Date: Fri, 13 Jan 2012 18:42:12 GMT
X-Amz-Target: com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain
Content-Encoding: amz-1.0
X-Amzn-Authorization: AWS3 AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HmacSHA256,SignedHeaders=Host;X-Amz-Date;X-Amz-Target;Content-Encoding,Signature=tzjkF55lxAxPhzp/BRGFYQRQRq6CqrM254dTDE/EncI=
Referer: http://swf.us-east-1.amazonaws.com/explorer/index.html
Content-Length: 91
Pragma: no-cache
Cache-Control: no-cache

{"name": "867530902",
 "description": "music",
 "workflowExecutionRetentionPeriodInDays": "60"}
```

Este es un ejemplo de la respuesta HTTP correspondiente. 

```
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json
x-amzn-RequestId: 4ec4ac3f-3e16-11e1-9b11-7182192d0b57
```

## Contenido de cuerpo HTTP
<a name="JSONschema"></a>

El cuerpo de una solicitud HTTP contiene los datos de la operación especificada en el encabezado de la solicitud HTTP. Use el formato de datos JSON para transmitir los valores de los datos y la estructura de datos, de forma simultánea. Los elementos se pueden anidar en otros elementos mediante la notación de corchete. Por ejemplo, a continuación se muestra una solicitud para enumerar todas las ejecuciones de flujos de trabajo que se iniciaron entre dos puntos específicos en el tiempo (mediante la anotación horaria de Unix). 

```
{
 "domain": "867530901",
 "startTimeFilter":
 {
   "oldestDate": 1325376070,
	 "latestDate": 1356998399
 },
 "tagFilter":
 {
   "tag": "music purchase"
 }
}
```

## Ejemplo de solicitud y respuesta JSON de Amazon SWF
<a name="JSONMajorExample"></a>

El siguiente ejemplo muestra una solicitud a Amazon SWF para una descripción del dominio que hemos creado previamente. A continuación se muestra la respuesta de Amazon SWF. 

### Solicitud HTTP POST
<a name="http-post-request"></a>

```
POST http://swf.us-east-1.amazonaws.com/ HTTP/1.1
Host: swf.us-east-1.amazonaws.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0E)
Accept: application/json, text/javascript, */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
X-Amz-Date: Sun, 15 Jan 2012 03:13:33 GMT
X-Amz-Target: com.amazonaws.swf.service.model.SimpleWorkflowService.DescribeDomain
Content-Encoding: amz-1.0
X-Amzn-Authorization: AWS3 AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HmacSHA256,SignedHeaders=Host;X-Amz-Date;X-Amz-Target;Content-Encoding,Signature=IFJtq3M366CHqMlTpyqYqd9z0ChCoKDC5SCJBsLifu4=
Referer: http://swf.us-east-1.amazonaws.com/explorer/index.html
Content-Length: 21
Pragma: no-cache
Cache-Control: no-cache

{"name": "867530901"}
```

### Respuesta de Amazon SWF
<a name="swf-response"></a>

```
HTTP/1.1 200 OK
Content-Length: 137
Content-Type: application/json
x-amzn-RequestId: e86a6779-3f26-11e1-9a27-0760db01a4a8

{"configuration":
  {"workflowExecutionRetentionPeriodInDays": "60"},
 "domainInfo":
  {"description": "music",
   "name": "867530901",
   "status": "REGISTERED"}
}
```

Observe que el protocolo (`HTTP/1.1`) va seguido de un código de estado (`200`). Un valor de código de `200` indica el éxito de la operación. 

Amazon SWF no serializa valores “null”. Si su analizador de JSON está configurado para serializar valores “null” para las solicitudes, Amazon SWF no los tendrá en cuenta. 