GraphQL查询操作对URL长度的限制

时间:2019-04-17 06:14:29

标签: url graphql limit

我已经开始在新项目上使用GraphQL,并且担心发送查询时生成的URL的长度。我的意思是,发出GraphQL查询时,我们最终不会达到URL长度的限制吗?有解决方法吗?

1 个答案:

答案 0 :(得分:0)

GraphQL请求通常作为带有application/json内容类型的POST请求发送。请求的主体是一个JSON对象,该对象包含三个属性-queryvariablesoperationName。这里,query是从客户端发送到服务器的整个GraphQL document,与实际操作类型无关。因此,您的请求可能类似于:

here所述,GraphQL服务器实现通常也支持GET请求以及包括application/graphql类型的POST请求。不过,这两种其他方法都不如前一种灵活:

  • GET请求不仅可能面临URL长度限制的问题,而且某些(大多数?)服务器实现将这些请求仅限制为query个操作,换句话说,通常为you cannot send mutations using GET
  • 使用application/graphql内容类型的POST请求将整个请求正文视为文档,这意味着它们不提供发送变量或指定应运行文档中哪个操作的方式。

您可能应该使用内容类型为application/json的POST请求,除非您有一些独特的客户端限制来阻止这样做。