Задать вопрос
johnymkp
@johnymkp

Как динамически сформировать параметры для graphql запроса?

Допустим, есть запрос, который выглядит примерно так:
Запрос
{
          player(steamAccountId: 12345) {
            steamAccountId,
            matches(request: {
              take: 20
            }) {
              id
              startDateTime
              durationSeconds
              lobbyType
              didRadiantWin
              gameMode
              bracket
              players {
                steamAccount {
                  id
                  timeCreated
                  dotaAccountLevel
                  isAnonymous
                  seasonRank
                  smurfFlag
                }
                hero {
                  id
                  displayName
                  shortName
                }
                isRadiant
                isVictory
                kills
                deaths
                assists
                goldPerMinute
                experiencePerMinute
                networth
                level
                heroDamage
                towerDamage
                position
                lane
                intentionalFeeding
              }
            }
          }
        }

Сейчас у меня это просто строка, в которую я могу, например, через ${value} вставить какое-то значение в нужное мне место. Например, в take передать не 20, а 50 и т.д.

Но что если мне например не надо take, а надо условные startDate и endDate вместо него? Т.е. выбрать в интервале. Не особо понимаю, как бы это реализовать аккуратно. Видится, что сам запрос должен быть чем-то вроде класса-строителя. Типа есть какая-то база запроса (например, поля данных мне нужны всегда одинаковые), а есть конфигурируемая часть, которую можно настраивать методами, вроде builder.startDate(sd).endDate(ed).build(). Но как реализовать каркас запроса? К строке лепить как будто не удобно, потому что если допустить, что конфигурируемости подвергаются разные части запроса, то если мы вызовем метод, который добавляет что-то к концу строки, а потом вызовем метод, который конфигурирует что-то из начала строки, то определять, куда именно надо вставлять параметр, будет сложно.

В общем, подскажите как это все по best-practice сделать.
  • Вопрос задан
  • 13 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 янв. 2025, в 17:12
10000 руб./за проект
23 янв. 2025, в 17:05
60000 руб./за проект
23 янв. 2025, в 16:31
1000 руб./за проект