Dynamodb - сканировать атрибут карты с помощью GraphQL - PullRequest
0 голосов
/ 30 января 2020

Я использую GraphQL для сканирования коллекции в DynamodB, которая выглядит следующим образом:

{
  "config_name": "COLOR_PALETTE",
  "config_value": {
    "SHOW_CUSTOM_SUBSCRIPTION": "NO",
    "SHOW_DD_SUBSCRIPTION": "NO",
    "SHOW_GRADIENT_SUBSCRIPTION": "YES",
    "SHOW_SOLID_SUBSCRIPTION": "NO"
  }
}

Я хочу вернуть "config_value" в качестве пары ключ-значение. Как определить схему и распознаватель AppSyn c, чтобы получить "config_value" в виде пары ключ-значение?

1 Ответ

0 голосов
/ 31 января 2020

Если вы настроите свою схему следующим образом:

type ConfigValues {
    SHOW_CUSTOM_SUBSCRIPTION: String!
    SHOW_DD_SUBSCRIPTION: String!
    SHOW_GRADIENT_SUBSCRIPTION: String!
    SHOW_SOLID_SUBSCRIPTION: String!
}

type Query {
    getConfigValues(configName: String!): ConfigValues
}

schema {
    query: Query
}

С преобразователем на getConfigValues с шаблоном сопоставления запросов:

{
    "version": "2017-02-28",
    "operation": "GetItem",
    "key": {
        "config_name": $util.dynamodb.toDynamoDBJson($ctx.args.configName),
    }
}

И шаблоном сопоставления ответов :

$util.toJson($ctx.result.config_value)

Выполнение следующего запроса:

query {
  getConfigValues(configName: "COLOR_PALETTE") {
    SHOW_CUSTOM_SUBSCRIPTION
    SHOW_DD_SUBSCRIPTION
    SHOW_GRADIENT_SUBSCRIPTION
    SHOW_SOLID_SUBSCRIPTION
  }
}

Будет иметь ответ:

{
  "data": {
    "getConfigValues": {
      "SHOW_CUSTOM_SUBSCRIPTION": "NO",
      "SHOW_DD_SUBSCRIPTION": "NO",
      "SHOW_GRADIENT_SUBSCRIPTION": "YES",
      "SHOW_SOLID_SUBSCRIPTION": "NO"
    }
  }
}

Этот ответ предполагает, что ваш первичный ключ раздела вашей таблицы DynamoDB установлен на config_name.

...