Ограничение количества операций запроса GraphQL на длину URL - PullRequest
0 голосов
/ 17 апреля 2019

Я начал использовать GraphQL в новом проекте и обеспокоен длиной URL-адреса, который генерируется при отправке запроса. Я имею в виду, разве мы не достигнем предела длины URL при выдаче запросов GraphQL. Есть ли обходные пути к этому?

1 Ответ

0 голосов
/ 17 апреля 2019

Запросы GraphQL обычно отправляются в виде запросов POST с типом содержимого application/json. Тело запроса - это объект JSON, состоящий из трех свойств - query, variables и operationName. Здесь query - это весь документ GraphQL , отправляемый с клиента на сервер, независимо от фактического типа операции. Таким образом, ваш запрос может выглядеть примерно так:

Как указано здесь , реализации сервера GraphQL обычно также поддерживают запросы GET, а также запросы POST, которые включают тип application/graphql. Оба эти двух других метода менее гибки, чем первый:

  • GET-запросы не только потенциально сталкиваются с проблемами с ограничениями длины URL-адреса, но некоторые (большинство?) Серверные реализации ограничивают эти запросы только query операциями - другими словами, часто вы не можете отправлять мутации с помощью GET .
  • POST-запросы, использующие application/graphql Тип содержимого, рассматривают все тело запроса как документ, что означает, что они не предоставляют способ отправки переменных или указания, какая операция в документе должна быть выполнена.

Возможно, вам следует использовать POST-запросы с application/json Типом контента, если только у вас нет уникального клиентского ограничения, которое мешает вам сделать это.

...