AWS AppSync RDS — Преобразователь выходных данных с пропуском для результата json SQL

#amazon-rds #aws-appsync

Вопрос:

Можно ли создать какой-то преобразователь ответов с пропуском для источника данных RDS. Результатом запроса является 1 строка и 1 столбец типа json, которые я хотел бы получить в результате запроса graphql.

Например, схема может быть

 type Query {
    getJsonFromDb(p: String): Res
}

type Res {
  prop: String
}

schema {
    query: Query
}
 

Распознаватель запросов может быть

 {
    "version": "2018-05-29",
    "statements": [
        "select json_build_object('prop',:P)"
    ],
    "variableMap": {
        ":P": $util.toJson($ctx.arguments.p)
    }    
}
 

В журнале регистрация результатов выглядит следующим образом

 "result": "{"sqlStatementResults":[{"columnMetadata":[{"arrayBaseColumnType":0,"isAutoIncrement":false,"isCaseSensitive":true,"isCurrency":false,"isSigned":false,"label":"json_build_object","name":"json_build_object","nullable":0,"precision":2147483647,"scale":0,"schemaName":"","tableName":"","type":1111,"typeName":"json","signed":false,"autoIncrement":false,"caseSensitive":true,"currency":false}],"numberOfRecordsUpdated":0,"records":[[{"stringValue":"{\"prop\" : \"test\"}"}]]}]}"
 

Так что все в порядке, но я, похоже, не могу найти правильные выражения скорости, чтобы вывести это.

Все советы, безусловно, оценены по достоинству!

Питер

Ответ №1:

Поэтому я нашел один из способов сделать это, выполнив, как в отображении ответов

 $util.parseJson($ctx.result).sqlStatementResults[0].records[0][0].stringValue