Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GraphQL预先批准的查询_Graphql - Fatal编程技术网

GraphQL预先批准的查询

GraphQL预先批准的查询,graphql,Graphql,我读到Facebook的内部服务器接受dev中的任何查询 模式,并将其缓存。在生产中,只有预先批准/缓存的 允许查询。这被称为其他服务器的一个模型 应该采纳 有人知道他们用什么工具吗?这个过程在什么地方描述得更详细了吗?我不知道facebook上是怎么写的,但我可以在GraphQL Guru中解释我是如何做到的。由于graphql是语言不可知论者,我将在不特定于语言的情况下进行解释 持久化查询的工作方式是客户端向graphql(持久化查询就绪)服务器发送具有唯一id和变量的查询 { “id”:“

我读到Facebook的内部服务器接受dev中的任何查询 模式,并将其缓存。在生产中,只有预先批准/缓存的 允许查询。这被称为其他服务器的一个模型 应该采纳


有人知道他们用什么工具吗?这个过程在什么地方描述得更详细了吗?

我不知道facebook上是怎么写的,但我可以在GraphQL Guru中解释我是如何做到的。由于graphql是语言不可知论者,我将在不特定于语言的情况下进行解释

持久化查询的工作方式是客户端向graphql(持久化查询就绪)服务器发送具有唯一id和变量的查询

{
“id”:“1234”,
“变量”:{
“firtName”:“John”,
“lstName”:“史密斯”
}
}

对于id,不要使用查询的散列,因为这会导致不同大小的长id名称,这会破坏目的

在服务器上,创建一个与持久化查询id同名的文件,该id包含实际的graphql查询。或者将其保存在数据库中

要获取graphql查询,您需要通过中间件拦截它。中间件通过其id检索graphql查询,并将查询传递给graphql端点。根据查询的定义方式,中间件可能需要对其进行解析。此外,在中间件中,如果持久化查询id不存在,您可以在其中列出白名单

然后,graphql端点将正常处理查询


你可以在这里看到一个nodejs示例

我不知道它在facebook中是如何出现的,但我可以在GraphQL Guru中解释我是如何做到的。由于graphql是语言不可知论者,我将在不特定于语言的情况下进行解释

持久化查询的工作方式是客户端向graphql(持久化查询就绪)服务器发送具有唯一id和变量的查询

{
“id”:“1234”,
“变量”:{
“firtName”:“John”,
“lstName”:“史密斯”
}
}

对于id,不要使用查询的散列,因为这会导致不同大小的长id名称,这会破坏目的

在服务器上,创建一个与持久化查询id同名的文件,该id包含实际的graphql查询。或者将其保存在数据库中

要获取graphql查询,您需要通过中间件拦截它。中间件通过其id检索graphql查询,并将查询传递给graphql端点。根据查询的定义方式,中间件可能需要对其进行解析。此外,在中间件中,如果持久化查询id不存在,您可以在其中列出白名单

然后,graphql端点将正常处理查询


您可以在这里看到一个nodejs示例

谢谢。那么,您是否在服务器上手动保存这些查询?我使用。我在编辑器中创建它们并发送到graphql端点,该端点具有一个解析器,该解析器将查询保存在json文件中。谢谢。那么,您是否在服务器上手动保存这些查询?我使用。我在编辑器中创建它们并发送到graphql端点,该端点具有一个解析器,该解析器将查询保存在json文件中。