

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Faites des demandes
<a name="making-requests"></a>

Utilisez un client de service pour envoyer des demandes à un Service AWS. AWS SDK pour Kotlin fournit des langages spécifiques au domaine (DSLs) suivant un [modèle de générateur sécurisé](https://kotlinlang.org/docs/type-safe-builders.html) pour créer des demandes. Les structures imbriquées des demandes sont également accessibles via leur. DSLs

L'exemple suivant montre comment créer une entrée d'opération CreateTable Amazon [DynamoDB](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/dynamodb/aws.sdk.kotlin.services.dynamodb/create-table.html) :

```
val ddb = DynamoDbClient.fromEnvironment()

val req = CreateTableRequest {
    tableName = name
    keySchema = listOf(
        KeySchemaElement {
            attributeName = "year"
            keyType = KeyType.Hash
        },
        KeySchemaElement {
            attributeName = "title"
            keyType = KeyType.Range
        }
    )

    attributeDefinitions = listOf(
        AttributeDefinition {
            attributeName = "year"
            attributeType = ScalarAttributeType.N
        },
        AttributeDefinition {
            attributeName = "title"
            attributeType = ScalarAttributeType.S
        }
    )
    
    // You can configure the `provisionedThroughput` member
    // by using the `ProvisionedThroughput.Builder` directly:
    provisionedThroughput {
        readCapacityUnits = 10
        writeCapacityUnits = 10
    }
}

val resp = ddb.createTable(req)
```

## Surcharges DSL de l'interface de service
<a name="service-interface-dsl-overloads"></a>

Chaque opération non diffusée sur l'interface du client de service est surchargée par le DSL, ce qui vous évite de créer une demande séparée.

Exemple de création d'un bucket Amazon Simple Storage Service (Amazon S3) avec la fonction surchargée :

```
s3Client.createBucket {    // this: CreateBucketRequest.Builder
    bucket = newBucketName
}
```

Cette expression est similaire à :

```
val request = CreateBucketRequest {    // this: CreateBucketRequest.Builder 
    bucket = newBucketName 
}

s3client.createBucket(request)
```

## Demandes sans saisie requise
<a name="requests-no-required-inputs"></a>

Les opérations qui n'ont pas d'entrées requises peuvent être appelées sans avoir à transmettre un objet de requête. Cela est souvent possible avec des opérations de type liste, telles que l'opération d'`listBuckets`API Amazon S3.

 Par exemple, les trois instructions suivantes sont équivalentes : 

```
s3Client.listBuckets(ListBucketsRequest {
  // Construct the request object directly.
})
s3Client.listBuckets {
  // DSL builder without explicitly setting any arguments.
}
s3Client.listBuckets()
```