

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

# Effettuare Servizio AWS richieste utilizzando la AWS SDK per PHP versione 3
<a name="making-service-requests"></a>

## Panoramica del flusso di lavoro delle richieste SDK
<a name="usage-summary"></a>

Lavorare con la AWS SDK per PHP versione 3 segue uno schema coerente in tutti i Servizi AWS casi. Il flusso di lavoro di base prevede tre fasi principali:

1. [**Crea un client di servizio**](#creating-a-client): crea un'istanza di un oggetto **Client** per l'oggetto Servizio AWS che desideri utilizzare.

1. [**Operazioni di esecuzione**](#executing-service-operations): richiama i metodi sul client che corrispondono alle operazioni nell'API del servizio.

1. [**Risultati del processo**](#result-objects)**: utilizza l'oggetto **Result** di tipo array restituito in caso di successo o gestisci qualsiasi eccezione generata in caso di errore.**

Le sezioni seguenti spiegano in dettaglio ciascuno di questi passaggi, a partire da come creare e configurare i client di servizio.

## Creazione di un client di servizio di base
<a name="creating-a-client"></a>

È possibile creare un client trasferendo un array associativo di opzioni a un costruttore di client.

 **Importazioni** 

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **Codice di esempio** 

```
//Create an S3Client
$s3 = new Aws\S3\S3Client([
    'region' => 'us-east-2'  // Since version 3.277.10 of the SDK,
]);                          // the 'version' parameter defaults to 'latest'.
```

Le informazioni sul parametro opzionale «version» sono disponibili nell'argomento delle [opzioni di configurazione](guide_configuration.md#cfg-version).

Si noti che **non abbiamo** esplicitamente fornito le credenziali al client. Questo perché l'SDK utilizza la [catena di provider di credenziali predefinita per cercare informazioni](guide_credentials_default_chain.md) sulle credenziali.

Tutte le opzioni generali di configurazione del client sono descritte in dettaglio in. [Opzioni del costruttore del client per la AWS SDK per PHP versione 3](guide_configuration.md) La gamma di opzioni fornite a un client può variare in base a quale client si sta creando. Queste opzioni personalizzate per la configurazione del client sono descritte nella [documentazione API](https://docs.aws.amazon.com/aws-sdk-php/latest/) per ogni client.

Sebbene l'esempio precedente mostri la creazione di client di base, è possibile personalizzare i client di servizio per soddisfare requisiti specifici. Per informazioni più dettagliate sulla configurazione dei client di servizio tramite codice, vedere[Configurazione dei client di servizio nel codice per la AWS SDK per PHP versione 3](configuring-service-clients-code.md). Se è necessario configurare i client di servizio utilizzando file di configurazione esterni o variabili di ambiente, fare riferimento a[Configurazione esterna dei client di servizio per la AWS SDK per PHP versione 3](configuring-service-clients-ext.md).

## Esecuzione di richieste
<a name="executing-service-operations"></a>

È possibile effettuare richieste di assistenza chiamando il metodo con lo stesso nome su un oggetto client. Ad esempio, per eseguire l'[PutObjectoperazione](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) Amazon S3, si chiama il `Aws\S3\S3Client::putObject()` metodo.

 **Importazioni** 

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
```

 **Codice di esempio** 

```
// Use the us-east-2 region and latest version of each client.
$sharedConfig = [
    'profile' => 'default',
    'region' => 'us-east-2'
];

// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);

// Use an Aws\Sdk class to create the S3Client object.
$s3Client = $sdk->createS3();

// Send a PutObject request and get the result object.
$result = $s3Client->putObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key' => 'my-key',
    'Body' => 'this is the body!'
]);

// Download the contents of the object.
$result = $s3Client->getObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key' => 'my-key'
]);

// Print the body of the result by indexing into the result object.
echo $result['Body'];
```

Le operazioni disponibili per un client e la struttura di input e output sono definite in fase di runtime in base a un file di descrizione del servizio. Quando si crea un client, se non si fornisce un `version` parametro (ad esempio *«2006-03-01» o *«più recente»**) del modello di servizio, il client utilizza per impostazione predefinita la versione più recente. L'SDK individua il file di configurazione corrispondente in base alla versione fornita.

Tutti i metodi di operazione come `putObject()` accettano un unico argomento, un array associativo che indica i parametri dell'operazione. La struttura di questo array (e la struttura dell'oggetto risultato) è definita per ciascuna operazione nella documentazione API SDK (ad esempio, consulta la documentazione API per l'[operazione putObject](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject)).

### Opzioni del gestore HTTP
<a name="http-handler-options"></a>

È inoltre possibile ottimizzare il modo in cui il gestore HTTP sottostante esegue la richiesta utilizzando il parametro speciale `@http`. Le opzioni che possono essere incluse nel parametro `@http` sono le stesse che possono essere impostate quando si crea un'istanza del client con l'[opzione client "http"](guide_configuration.md#config-http).

```
// Send the request through a proxy
$result = $s3Client->putObject([
    'Bucket' => 'amzn-s3-demo-bucket',
    'Key'    => 'my-key',
    'Body'   => 'this is the body!',
    '@http'  => [
        'proxy' => 'http://192.168.16.1:10'
    ]
]);
```

## Lavorare con oggetti di risultato
<a name="result-objects"></a>

L'esecuzione di un'operazione corretta restituisce un oggetto `Aws\Result`. Anziché restituire i dati grezzi XML o JSON di un servizio, l'SDK forza i dati di risposta in una struttura array associativa. Normalizza alcuni aspetti dei dati in base alla sua conoscenza del servizio specifico e la struttura di risposta sottostante.

È possibile accedere ai dati dall'`AWS\Result`oggetto come un array PHP associativo.

 **Importazioni** 

```
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
```

 **Codice di esempio** 

```
// Use the us-east-2 region and latest version of each client.
$sharedConfig = [
    'profile' => 'default',
    'region' => 'us-east-2',
];

// Create an SDK class used to share configuration across clients.
$sdk = new Aws\Sdk($sharedConfig);

// Use an Aws\Sdk class to create the S3Client object.
$s3 = $sdk->createS3();
$result = $s3->listBuckets();
foreach ($result['Buckets'] as $bucket) {
    echo $bucket['Name'] . "\n";
}

// Convert the result object to a PHP array
$array = $result->toArray();
```

Il contenuto dell'oggetto risultato dipende dall'operazione che è stata eseguita e dalla versione di un servizio. La struttura che risulta da ogni operazione API è documentata nella documentazione API per ciascuna operazione.

L'SDK è integrato con [JMESPath](http://jmespath.org/)un [DSL](http://en.wikipedia.org/wiki/Domain-specific_language) utilizzato per cercare e manipolare dati JSON o, nel nostro caso, array PHP. L'oggetto risultato contiene un metodo `search()` che è possibile utilizzare per estrarre dati dal risultato in modo più dichiarativo.

 **Codice di esempio** 

```
$s3 = $sdk->createS3();
$result = $s3->listBuckets();
```

```
$names = $result->search('Buckets[].Name');
```