Как мне отформатировать вывод SQL, чтобы он соответствовал моему типу GraphQL? - PullRequest
0 голосов
/ 25 января 2019

У меня есть Google для этого, но я не могу найти ответ.

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

type Ticket {
    id: Int!
    bandID: Int!
    band: Band
    ticketURL: String!
    price: Int!
    date: String!
  }

Я быхотел бы иметь возможность возвращать что-то подобное из MSSQL, GraphQL и JS:

[
  {
    id: 1,
    ticketURL: "https://example.co.uk",
    price: 50,
    date: "2019/01/01",
    band: {
     id: 1,
     name: "Band name"
    }
  }
]

Каков был бы наиболее эффективный способ возврата структуры данных, подобной этой?Первое, что приходит на ум, это что-то вроде ниже, но это кажется , поэтому неэффективно и неправильно.

// Call SQL to get all tickets: "SELECT * FROM Ticket"
// For each ticket
  // Call SQL to get the Band
  // Merge with the ticket obj

1 Ответ

0 голосов
/ 25 января 2019

В общем, я бы посоветовал вам не стрелять за то, что вы описываете.Принципы проектирования спецификации GraphQL побуждают вас удостовериться, что ваша логика API соответствует потребностям вашего клиента, и что если что-то более подходящее для ваших нужд придет на смену GraphQL, вы сможете удалить слой GraphQL и заменить его.это с чем-то новым, без необходимости переписывать вашу логику.Этот конкретный запрос, по словам изобретателей GraphQL, слишком тесно связан с API.Для большинства людей задержка в базе данных не является достаточно узким местом для такой оптимизации.Вместо этого я бы посоветовал вам использовать загрузчики данных (для кэширования и для массовых запросов) и просто написать свои средства распознавания для вызова ORM или чего-либо еще для извлечения этих точек данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...