它看起来像我的公司将会从阿波罗客户端持久化的查询前进,因为在这里讨论:https://dev-blog.apollodata.com/persisted-graphql-queries-with-apollo-client-119fd7e6bba5
在这篇文章中有某事需要做的服务器上的中间件提。我一直无法找到任何资料的需要与石墨烯的Django改变什么。
任何人都可以提供什么建议吗?
罗伯特
持久查询是不是和GraphQL规范的一部分,因此,可以在各种各样的方式来实现。这里有一个如何想这样做,你的服务器上的几个例子:
提取查询
在编写这本书的时候,你可以提取与继电器现代的阿波罗客户端,和其他静态查询。他们以类似的方式所有的工作,所以我将使用Apollo PersistGraphQL作为一个例子。在你的构建,你需要在你的src目录提取您的静态查询运行persistgraphql
命令。此命令的结果将是充满查询一个JSON文件,如字符串,一个数字作为值。
{
"
{
author {
firstName
lastName
}
}
": 9,
"
query otherQuery {
person {
firstName
lastName
}
}
": 10
}
使用提取查询
从这里,你有几种选择。一旦你的服务器知道所有可能出现的问题,它可以提供一个接口在JSON文件中提供的值,也可以列入白名单,它知道的查询。如果你的服务器只提供给值的接口(myserver/api/9
,在上面的例子中myserver/api/10
),你需要确保你的客户端应用程序映射它查询到那些有它消耗相同的JSON文件约定的ID。或者,您可以使用该文件,以防止意外的查询从不会以任何方式修改客户端执行。
你怎么专门设置你的服务器消耗这个JSON文件是你。有些人会预先执行组已知的查询,并把它们放在一个快速的数据存储像Redis的。有些人用它严格,以防止未经授权的查询。至于如何与Django的石墨烯做,有外的开箱无解,我所知道的,但耗时的提取键/值存储像一个以上应为您的团队和一群好选项。
您可以检查石墨烯Django的持久化的查询