В чем разница между GraphQL и API остальных? - PullRequest
1 голос
/ 13 февраля 2020

Я хочу знать, что является причиной использования qraphQL вместо rest api .

Столько, сколько я знаю, вместо того, чтобы делать несколько запросов (для уменьшить HTTP-запрос), можно создать группу HTTP-запросов за один запрос, используя graphQL .

Кто-нибудь может описать немного больше, пожалуйста?

Заранее спасибо.

1 Ответ

4 голосов
/ 13 февраля 2020

Есть много статей, посвященных этому вопросу, более подробно, доступных на inte rnet. Я пытаюсь дать краткий обзор здесь.

GraphQL предлагает несколько преимуществ по сравнению с REST.

Основное отличие

В интерфейсе REST все связано с ресурсами. Например, вы можете получить ресурсы «машина» с идентификатором 25 и идентификатором 83, вызвав конечную точку следующим образом:

GET /cars/25
GET /cars/83

Обратите внимание, как вы должны вызывать интерфейс дважды. Конечная точка («автомобили») и ваш ресурс связаны.

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

GET /api?query={ car(ids: [25, 83]) { model, manufacturer { address } } }

Обратите внимание, как вы даже указали точные данные, которые хотите получить (модель, производитель и его адрес). По сравнению с REST, конечная точка ("api") больше не определяется ресурсом c.

Некоторые преимущества

  • Как уже упоминалось в вопросе Вы можете уменьшить количество HTTP-операций с помощью запросов GraphQL (избегайте недостаточной выборки).
  • Точно указав, какие данные вы хотите получить, вы можете уменьшить накладные расходы, передаваемые через интерфейс ( избегайте чрезмерного извлечения).
  • Используя гибкие запросы с GraphQL, вы с большей вероятностью избежите слишком тесного связывания потребителя интерфейса с производителем, если не будете точно реализовывать требования определенного c потребителя в интерфейсе REST. с определенными конечными точками.
  • Поскольку каждый потребитель точно указывает, какие данные требуются в GraphQL, вы можете собрать более подробную статистику использования данных в своем бэкэнде.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...