首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在阿波罗服务器hapi graphql上实现缓存

如何在阿波罗服务器hapi graphql上实现缓存
EN

Stack Overflow用户
提问于 2018-10-21 19:35:46
回答 3查看 2.5K关注 0票数 2

我有带有apollo-server-hapi的图形。我尝试添加以下缓存控件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const graphqlOptions = {
  schema,
  tracing: true,
  cacheControl: true,
};

但是,当我尝试在模式基础上添加缓存选项时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type Author @cacheControl(maxAge: 60) {
  id: Int
  firstName: String
  lastName: String
  posts: [Post]
}

我收到了一条错误消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error: Unknown directive "cacheControl".

您能帮忙吗?在架构上应用缓存控制的正确方法是什么?

我听从下面的指示,但似乎不起作用。

阿波罗高速缓存控制

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-10-22 00:37:23

在了解了有关在阿波罗图形we上缓存的更多信息之后,基本上,问题是来自makeExecutableSchemaapollo-server-hapi,没有包含@cacheControl的指令,因此要使其工作,我们只需要将自己的@cacheControl指令定义为graphql文件,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum CacheControlScope {
  PUBLIC
  PRIVATE
}

directive @cacheControl (
  maxAge: Int
  scope: CacheControlScope
) on FIELD_DEFINITION | OBJECT | INTERFACE

type Author @cacheControl(maxAge: 60) {
  id: Int
  firstName: String
  lastName: String
  posts: [Post]
}
票数 12
EN

Stack Overflow用户

发布于 2019-12-05 18:40:55

"apollo-server-express": "^2.9.12"中,以下内容对我起了作用:

1.-设置全局最大缓存:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var graphqlServer = new ApolloServer({
  cacheControl: {
    defaultMaxAge: 1000,
  },
...

2.-在模式中定义以下指令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Schema (root query)
const Query = gql`
  directive @cacheControl(
      maxAge: Int,
      scope: CacheControlScope
  ) on OBJECT | FIELD | FIELD_DEFINITION

  enum CacheControlScope {
      PUBLIC
      PRIVATE
  }
  type Query {
...

3.-最后,称之为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = `
type ArticlePage @cacheControl(maxAge: 801){
    article(id: String) : Article
    author(key: String) : Author
}`;

诀窍是@cacheControl(maxAge: 801)不能高于defaultMaxAge: 1000

祝好运!

票数 2
EN

Stack Overflow用户

发布于 2019-07-09 17:42:12

我也是apollo-server-lambda,主要问题来自于使用makeExecutableSchema文档提到这是由模式拼接引起的。

不幸的是,如果您使用像graphql-中间件这样的东西,除了hinduni提到的内容之外,没有其他办法。还要确保你在阿波罗服务器上> 2.6.6.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52922080

复制
相关文章
PHP解析json、xml错误
解析json php内置函数json_decode() 可以解析json字符串 但是有的时候看起来正确的json,解析却一直返回null。 你知道吗,json是可能解析失败的,此时PHP不会产生提示。 我们需要手动通过json_last_error()函数获取 function json_decode_siam($string, $mark = false){ $data = json_decode($string, $mark); switch (json_last_error()) {
宣言言言
2019/12/15
2.5K0
iOS 5 Mobile Safari中label的bug
前几天在codepen上看到了不错CSS用法,今天打算在写新博客的时候使用类似的思路:
mmzhou
2018/08/06
6780
iPhone Safari 下载企业包出现 apk
有人反馈企业包下载链接,使用 iPhone Safari 打开后出现下载 apk 的提示
莫空9081
2021/11/24
1.2K0
记录一次 Safari 调试 iPhone Web Page
话说,前些日子一直处理集团官网开发中,前几日接到测试反馈,移动端某个页面兼容性有问题。
贺biubiu
2019/09/17
1.7K0
记录一次 Safari 调试 iPhone Web Page
[Spring Boot]Safari(iPhone系浏览器)相关无法播放视频
近期在存储服务。遇到了一个棘手的问题,电脑端,包括了Android的浏览器,应用都能正常的播放上传的mp4应用,但是链接一到苹果上就有问题了。
用户2353021
2021/03/04
2.2K0
[Spring Boot]Safari(iPhone系浏览器)相关无法播放视频
suning云盘解析源码[PHP]
作者:matrix 被围观: 15,523 次 发布时间:2015-10-29 分类:PHP | 114 条评论 »
HHTjim 部落格
2022/09/26
1.8K0
文件解析错误 SyntaxError: Unexpected token / in JSON at position 0
在微信开发者工具上运行,发现报如上图所示的错误,打开相应.json的目录文件,发现代码被注释掉了,即main.json里空的。
honey缘木鱼
2019/03/08
9.1K0
文件解析错误  SyntaxError: Unexpected token / in JSON at position 0
8、web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置
天降攻城狮
2019/07/05
9260
python-websocket爬虫案例
精华都在这图上,和下面代码,没啥加密可以当个简单模板 目标网站url:https://m.jungleerummy.com/register
小小咸鱼YwY
2020/12/01
1.8K0
python-websocket爬虫案例
php json_decode解析失败及错误处理
一般情况下,获取到一段json内容,直接json_decode($content, true)就转成array来用了,很方便。 但是,如果给你提供json内容的接口出了点问题,给的json不标准或是干脆有错误,那就要想办法来找出问题了。 先看看json_encode的 php 官方文档源码: http://cn2.php.net/manual/en/…
全栈程序员站长
2022/09/15
1.5K0
linux curl wget ab测速
CURL测速 curl -o /dev/null -w "\n DNS 解析域名的时间\n namelookup:"%{time_namelookup}"\n client和server端建立TCP 连接的时间\n time_connect:"%{time_connect}"\n 从client发出请求;到web的server 响应第一个字节的时间\n time_starttransfer:"%{time_starttransfer}"\n client发出请求;到web的server发送会所有的相应数据的
葫芦
2020/04/24
4.1K0
Python爬取哔哩哔哩(bilibili)视频
本篇文章主要给大家讲解下如实使用python 爬取哔哩哔哩中的视频,首先我是一名大数据开发工程师,爬虫只是我的一个业余爱好,喜欢爬虫的小伙伴可以一起交流。好了多了就不多说了喜欢的朋有可以收藏,转发请复原文链接谢谢。
大数据老哥
2021/02/04
2.7K1
Python爬取哔哩哔哩(bilibili)视频
分析反(反爬虫) 用不完的遍布世界的毫秒级代理IP
不管是re解析也好,xpath也好,还是Beautiful Soup,返回的list 都是每个标签的的内容占一个元素
wo.
2021/06/15
8270
分析反(反爬虫) 用不完的遍布世界的毫秒级代理IP
微云网盘外链php源码
作者:matrix 被围观: 154,090 次 发布时间:2013-10-26 分类:兼容并蓄 零零星星 | 16 条评论 »
HHTjim 部落格
2022/09/26
2.2K0
微云网盘外链php源码
抖音无水印解析PHP源码
抖音无水印解析PHP源码 仅限学习使用 输出为标准的格式化json数据 ajax直接调用即可  原生的ajax的调用方法看底部 <?php $url = @$_GET['url']; if (strs
用户8099761
2023/05/11
9190
抖音无水印解析PHP源码
linux curl wget 测速
CURL测速 curl -o /dev/null -w "\n DNS 解析域名的时间\n namelookup:"%{time_namelookup}"\n client和server端建立TCP 连接的时间\n time_connect:"%{time_connect}"\n 从client发出请求;到web的server 响应第一个字节的时间\n time_starttransfer:"%{time_starttransfer}"\n client发出请求;到web的server发送会所有的相应数据的
葫芦
2020/04/23
8K0
抖音无水印解析PHP源码
(adsbygoogle = window.adsbygoogle || []).push({});
陌涛
2019/07/17
2.4K1
[快学Python3]JSON解析
概述 本章节将为大家介绍如何使用Python来编码和解码json对象。 json是javascript object notation的简写,是一种轻量级的数据交换格式,易于阅读和编写,是目前前后端最常用的数据交互格式之一。 标准库 在Python中,提供了标准的json库来对json串进行解码和编码解析。 常用的函数如下 json.dumps 将python对象编码成json字符串, 返回json串 json.loads 将已编码的json串解码为python对象,返回python对应的数据类型 下面我们
苦叶子
2018/04/09
4.2K0
Json海量数据解析Json海量数据解析
​ 在android开发中,app和服务器进行数据传输时大多数会用到json。在解析json中通常会用到以下几种主流的解析库:jackson、gson、fastjson。而对于从server端获取的数据量很小时候,我们可能会忽略解析所产生的性能问题。而我在开发的过程中就碰到因为解析json而产生严重的问题。
用户2929716
2018/08/23
6.7K0
Json海量数据解析Json海量数据解析
点击加载更多

相似问题

JavaScript错误行1 <ANYJAVASCRIPFILE.JS> SyntaxError: Iphone mobile safari中的解析错误

21

iPhone Mobile Safari:强制键盘打开

40

iFrame和Mobile Safari (iPad/iPhone)

31

iPhone的Mobile Safari:特殊字符

24

iphone mobile web +删除safari界面栏

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文