

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS AppSync referência de modelo de mapeamento de resolvedor para RDS
<a name="resolver-mapping-template-reference-rds"></a>

Os modelos de mapeamento do resolvedor AWS AppSync RDS permitem que os desenvolvedores enviem consultas SQL para uma API de dados do Amazon Aurora Serverless e recebam o resultado dessas consultas.

## Modelo de mapeamento de solicitações
<a name="request-mapping-template"></a>

O modelo de mapeamento de solicitação do RDS é bastante simples:

```
{
    "version": "2018-05-29",
    "statements": [],
    "variableMap": {},
    "variableTypeHintMap": {}
}
```

Veja aqui a representação do esquema JSON do modelo de mapeamento da solicitação do RDS, uma vez resolvido:

```
{
    "definitions": {},
    "$schema": "https://json-schema.org/draft-07/schema#",
    "$id": "https://example.com/root.json",
    "type": "object",
    "title": "The Root Schema",
    "required": [
        "version",
        "statements",
        "variableMap"
    ],
    "properties": {
        "version": {
            "$id": "#/properties/version",
            "type": "string",
            "title": "The Version Schema",
            "default": "",
            "examples": [
                "2018-05-29"
            ],
            "enum": [
                "2018-05-29"
            ],
            "pattern": "^(.*)$"
        },
        "statements": {
            "$id": "#/properties/statements",
            "type": "array",
            "title": "The Statements Schema",
            "items": {
                "$id": "#/properties/statements/items",
                "type": "string",
                "title": "The Items Schema",
                "default": "",
                "examples": [
                    "SELECT * from BOOKS"
                ],
                "pattern": "^(.*)$"
            }
        },
        "variableMap": {
            "$id": "#/properties/variableMap",
            "type": "object",
            "title": "The Variablemap Schema"
        },
        "variableTypeHintMap": {
            "$id": "#/properties/variableTypeHintMap",
            "type": "object",
            "title": "The variableTypeHintMap Schema"
        }
    }
}
```

Veja a seguir um exemplo de modelo de mapeamento de solicitação com uma consulta estática:

```
{
    "version": "2018-05-29",
    "statements": [
        "select title, isbn13 from BOOKS where author = 'Mark Twain'"
    ]
}
```

## Versão
<a name="version"></a>

Comum a todos os modelos de mapeamento de solicitação, o campo de versão define a versão usada pelo modelo. O campo de versão é obrigatório. O valor "2018-05-29" é a única versão compatível com os modelos de mapeamento do Amazon RDS.

```
"version": "2018-05-29"
```

## Declarações e VariableMap
<a name="statements-variablemap"></a>

A matriz de instruções é um espaço reservado para as consultas fornecidas pelo desenvolvedor. Atualmente, oferecemos suporte a até duas consultas por modelo de mapeamento de solicitação. O `variableMap` é um campo opcional que contém aliases que podem ser usados para tornar as instruções SQL mais curtas e legíveis. O seguinte exemplo é possível:

```
{
"version": "2018-05-29",
    "statements": [
        "insert into BOOKS VALUES (:AUTHOR, :TITLE, :ISBN13)",
        "select * from BOOKS WHERE isbn13 = :ISBN13"
    ],
    "variableMap": {
        ":AUTHOR": $util.toJson($ctx.args.newBook.author),
        ":TITLE": $util.toJson($ctx.args.newBook.title),
        ":ISBN13": $util.toJson($ctx.args.newBook.isbn13)
    }
}
```

AWS AppSync usará os valores do mapa variável para criar **[SqlParameterized](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html)**as consultas que serão enviadas para a API de dados sem servidor do Amazon Aurora. As instruções SQL são executadas com parâmetros fornecidos no mapa de variáveis, o que elimina o risco de injeção de SQL. 

## VariableTypeHintMap
<a name="variabletypehintmap"></a>

`variableTypeHintMap` é um campo opcional contendo tipos de aliases que podem ser usados para enviar dicas de tipos de [parâmetros SQL](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html). Essas dicas de tipo evitam a conversão explícita nas instruções SQL, tornando-as mais curtas. O seguinte exemplo é possível:

```
{
    "version": "2018-05-29",
    "statements": [
        "insert into LOGINDATA VALUES (:ID, :TIME)",
        "select * from LOGINDATA WHERE id = :ID"
     ],
     "variableMap": {
        ":ID": $util.toJson($ctx.args.id),
        ":TIME": $util.toJson($ctx.args.time)
     },
     "variableTypeHintMap": {
        ":id": "UUID",
        ":time": "TIME"
     }
}
```

AWS AppSync usará o valor do mapa variável para criar as consultas que são enviadas para a API de dados sem servidor do Amazon Aurora. Ele também usa os dados de `variableTypeHintMap` e envia as informações do tipo para o RDS. O `typeHints` com suporte a RDS pode ser encontrado [aqui](https://docs.aws.amazon.com/rdsdataservice/latest/APIReference/API_SqlParameter.html).