

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat permintaan
<a name="making-requests"></a>

Gunakan klien layanan untuk membuat permintaan ke Layanan AWS. AWS SDK untuk Kotlin Menyediakan Domain Specific Languages (DSLs) mengikuti pola [pembuat type-safe](https://kotlinlang.org/docs/type-safe-builders.html) untuk membuat permintaan. Struktur permintaan bersarang juga dapat diakses melalui permintaan mereka DSLs.

Contoh berikut menunjukkan cara membuat input operasi 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)
```

## Antarmuka layanan DSL kelebihan beban
<a name="service-interface-dsl-overloads"></a>

Setiap operasi non-streaming pada antarmuka klien layanan memiliki kelebihan DSL sehingga Anda tidak perlu membuat permintaan terpisah.

Contoh pembuatan bucket Amazon Simple Storage Service (Amazon S3) dengan fungsi overloaded:

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

Ini setara dengan:

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

s3client.createBucket(request)
```

## Permintaan tanpa input yang diperlukan
<a name="requests-no-required-inputs"></a>

Operasi yang tidak memiliki input yang diperlukan dapat dipanggil tanpa harus melewati objek permintaan. Hal ini sering dimungkinkan dengan operasi tipe daftar, seperti operasi Amazon `listBuckets` S3 API.

 Misalnya, tiga pernyataan berikut ini setara: 

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