

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Effettuazione di richieste API di AWS interrogazione utilizzando il protocollo di query in Amazon SQS
<a name="sqs-making-api-requests-xml"></a>

Questo argomento spiega come costruire un endpoint Amazon SQS, effettuare richieste GET e POST e interpretare le risposte.

## Costruzione di un endpoint
<a name="sqs-api-constructing-endpoints"></a>

Per lavorare con le code Amazon SQS, è necessario creare un endpoint. Per informazioni sugli endpoint Amazon SQS, consulta le seguenti pagine in *Riferimenti generali di Amazon Web Services*:
+ [Endpoint regionali](https://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region)
+ [Endpoint e quote di Amazon Simple Queue Service](https://docs.aws.amazon.com/general/latest/gr/sqs-service)

Ogni endpoint Amazon SQS è completamente indipendente. Ad esempio, se due code sono denominate *MyQueue* e una ha l'endpoint `sqs.us-east-2.amazonaws.com`, mentre l'altra ha l'endpoint `sqs.eu-west-2.amazonaws.com`, le due code non condividono alcun dato tra loro.

Di seguito è riportato un esempio di un endpoint che invia una richiesta per creare una coda. 

```
https://sqs.eu-west-2.amazonaws.com/   
?Action=CreateQueue
&DefaultVisibilityTimeout=40
&QueueName=MyQueue
&Version=2012-11-05
&AUTHPARAMS
```

**Nota**  
I nomi delle code e la coda fanno distinzione tra maiuscole e minuscole. URLs   
La struttura di *`AUTHPARAMS`* dipende dalla modalità di firma della richiesta API. Per ulteriori informazioni, consulta [Signing AWS API Requests](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) nel *Amazon Web Services General Reference*.

## Effettuare una richiesta GET
<a name="structure-get-request"></a>

Una richiesta Amazon SQS GET è strutturata come un URL che contiene le seguenti informazioni:
+ **Endpoint**: la risorsa su cui agisce la richiesta (il [nome della coda e l'URL](sqs-queue-message-identifiers.md#queue-name-url)), ad esempio: `https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue`
+ **Operazione**: l'[operazione](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html) che desideri eseguire sull'endpoint. Un punto di domanda (`?`) separa l'endpoint dall'azione, ad esempio: `?Action=SendMessage&MessageBody=Your%20Message%20Text`
+ **Parametri**: gli eventuali parametri della richiesta. Ogni parametro è separato da una e commerciale (`&`) ad esempio: `&Version=2012-11-05&AUTHPARAMS` 

Il seguente è un esempio di una richiesta GET per inviare un messaggio a una coda Amazon SQS.

```
https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue
?Action=SendMessage&MessageBody=Your%20message%20text
&Version=2012-11-05
&AUTHPARAMS
```

**Nota**  
I nomi delle code e la coda fanno distinzione tra maiuscole e URLs minuscole.  
Poiché le richieste GET lo sono URLs, è necessario codificare in URL tutti i valori dei parametri. Poiché gli spazi non sono consentiti URLs, ogni spazio è codificato come URL. `%20` Il resto dell'esempio non è stato codificato nell'URL per renderne più facile la lettura.

## Effettuare una richiesta POST
<a name="structure-post-request"></a>

Una richiesta Amazon SQS POST invia i parametri di query come modulo nel corpo di una richiesta HTTP.

Di seguito è riportato un esempio di intestazione HTTP con `Content-Type` impostato su `application/x-www-form-urlencoded`.

```
POST /123456789012/MyQueue HTTP/1.1
Host: sqs.us-east-2.amazonaws.com
Content-Type: application/x-www-form-urlencoded
```

L'intestazione è seguita da una richiesta GET `[form-urlencoded](https://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2)` che invia un messaggio a una coda Amazon SQS. Ogni parametro è separato da una e commerciale (`&`).

```
Action=SendMessage
&MessageBody=Your+Message+Text
&Expires=2020-10-15T12%3A00%3A00Z
&Version=2012-11-05
&AUTHPARAMS
```

**Nota**  
Solo l'intestazione HTTP `Content-Type` è obbligatoria. La richiesta `AUTHPARAMS` è la stessa della richiesta GET.  
Il client HTTP potrebbe aggiungere altri elementi alla richiesta HTTP, a seconda della versione HTTP del client.

# Interpretazione delle risposte dell'API XML di Amazon SQS
<a name="sqs-xml-api-responses"></a>

Quando invii una richiesta ad Amazon SQS, restituisce una risposta XML contenente i risultati della richiesta. Per comprendere la struttura e i dettagli di queste risposte, consulta le [azioni API](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_Operations.html) specifiche nel riferimento alle *API di Amazon Simple Queue Service*.

## Struttura di una risposta XML corretta
<a name="sqs-api-successful-response-structure"></a>

Se la richiesta è andata a buon fine, l'elemento principale della risposta prende il nome dell'azione, con la dicitura `Response` aggiunta (ad esempio, `ActionNameResponse`).

Questo elemento contiene i seguenti elementi figli:
+ **`ActionNameResult`**: contiene un elemento specifico dell'operazione. Ad esempio, l'elemento `CreateQueueResult` contiene l'elemento `QueueUrl` che, a sua volta, contiene l'URL della coda creata.
+ **`ResponseMetadata`**: contiene `RequestId` che, a sua volta, contiene l'UUID della richiesta.

Di seguito è riportato un esempio di risposta corretta in formato XML:

```
<CreateQueueResponse
   xmlns=https://sqs.us-east-2.amazonaws.com/doc/2012-11-05/
   xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
   xsi:type=CreateQueueResponse>
   <CreateQueueResult>
      <QueueUrl>https://sqs.us-east-2.amazonaws.com/770098461991/queue2</QueueUrl>
   </CreateQueueResult>
   <ResponseMetadata>
      <RequestId>cb919c0a-9bce-4afe-9b48-9bdf2412bb67</RequestId>
   </ResponseMetadata>
</CreateQueueResponse>
```

## Struttura di una risposta di errore XML
<a name="sqs-api-error-response-structure"></a>

Se una richiesta ha esito negativo, Amazon SQS restituisce sempre il principale elemento di risposta `ErrorResponse`. Questo elemento contiene un elemento `Error` e un elemento `RequestId`.

L'elemento `Error` contiene i seguenti elementi figli:
+ **`Type`**: specifica se l'errore è stato un errore di produttore o consumatore.
+ **`Code`**: specifica il tipo di errore.
+ **`Message`**: specifica la condizione dell'errore in un formato leggibile.
+ **`Detail`**: (Facoltativo) Specifica ulteriori dettagli sull'errore.

L'elemento `RequestId` contiene l'UUID della richiesta.

Di seguito è riportato un esempio di risposta di errore in formato XML:

```
<ErrorResponse>
   <Error>
      <Type>Sender</Type>
      <Code>InvalidParameterValue</Code>
      <Message>
         Value (quename_nonalpha) for parameter QueueName is invalid.
         Must be an alphanumeric String of 1 to 80 in length.
      </Message>
   </Error>
   <RequestId>42d59b56-7407-4c4a-be0f-4c88daeea257</RequestId>
</ErrorResponse>
```