Как сопоставить Java Map с / из GraphQL

#java #json #dictionary #graphql #schema

#java #json #словарь #graphql #схема

Вопрос:

Ищу элегантное существующее решение для отображения Java Map в / из GraphQL / JSON.

Map<String, String> map = Map.of("a", "b", "c", "d");

В идеале, и я полагаю, что в соответствии с JSON ObjectMapper, результирующий JSON должен выглядеть следующим образом:

 {
  "a": "b",
  "c": "d"
}
  

Единственный способ с ванильной схемой GraphQL — это определить тип с ключом и значением и упаковать их в список. Это, в свою очередь, создает раздутый JSON:

 [
  {
    "key": "a",
    "value": "b"
  },
  {
    "key": "c",
    "value": "d"
  }
]
  

Я видел ответы, связанные со скалярным типом, и если это единственный способ, пусть будет так.
Спасибо за любые указания / подсказки!

Редактировать: я все еще уклоняюсь от реализации моего объекта данных в виде карты. У кого-нибудь был какой-либо успех в этом? На https://www.graphql-java-kickstart.com/tools/schema-definition последний пункт раздела Приоритет отображения полей меня интригует (хотя пока этого недостаточно):

Наконец, если класс data реализует java.util.Map , то:

метод get(имя)

Редактировать 2: после еще некоторого чтения я теперь понимаю, что между java maps и GraphQL нет прямого сопоставления. Я буду следовать скалярному подходу для карт, поскольку этого будет достаточно для большинства моих предполагаемых применений, т. Е. просто возвращать, при желании, некоторые настройки / свойства / и т.д. Конкретной операции или запроса