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á.
Referência do modelo de mapeamento do resolvedor do AWS AppSync para RDS
Os modelos de mapeamento do resolvedor do RDS do AWS AppSync permitem que os desenvolvedores enviem consultas SQL para uma API de dados do Amazon Aurora Sem Servidor e recuperem o resultado dessas consultas.
Modelo de mapeamento de solicitações
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
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"
Instruções e VariableMap
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) } }
O AWS AppSync usará o valor do mapa de variáveis para criar as consultas SqlParameterized que são enviadas para a API de dados do Amazon Aurora Sem Servidor. 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
variableTypeHintMap é um campo opcional contendo tipos de aliases que podem ser usados para enviar dicas de tipos de parâmetros SQL. 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" } }
O AWS AppSync usará o valor do mapa de variáveis para criar as consultas que são enviadas para a API de dados do Amazon Aurora Sem Servidor. 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.