我们在节点graphql服务器上使用订阅。最近加了集群能力,用Redis做pubsub。在我的本地环境中,一切都很好。当我第一次上传到heroku并使用他们的Redis插件时,我看到它显示了一个突变,但下一次却没有。几次尝试后,它再次起作用(50%起作用)。import{RedisPubSub}from'graphql-redis-subscriptions';importRedisfrom'ioredis';letREDIS_URL=process.env.REDIS_URL||'redis://127.0.0.1:6379';constoptions={retryStrategy:
目前我有graphql和mongodb,现在我想添加redis层来优化服务器响应时间。假设我有这样的模式:typeQuery{book(id:ID):Book}typeBook{#simplefieldsdirectcomefrommongodbcollectionBookABC#fieldswithvaluesgeneratedfromsimplefieldsXYZ#fieldswithaggregateddatafromotherdbcollectionse.gavg/min/maxLMN}问题来了:我应该在Redis中存储什么样的数据?1)来自数据库的字符串化原始文档,由ID键控
我有一个graphql模式,其中的一个片段如下所示:typeUser{username:String!password:String!}在graphiql中,有一个描述字段,但它总是说“self描述”。如何向模式添加描述? 最佳答案 如果您使用的是GraphQL.js0.7.0或更高版本,您只需在要描述的字段、类型或参数之前直接添加注释即可。例如:#AtypethatdescribestheusertypeUser{#Theuser'susername,shouldbetypedintheloginfield.username:St
我似乎无法将使用apollo进行的graphql查询中的变量放入查询主体以被后端服务器接受。我有一个简单的vue前端和后端。在vue组件中,我有以下查询:apollo:{entry:{query:gql`queryvariables($userID:Int){entries(userID:$userID){id,value,timeStamp}}`,variables(){return{userID:2}},update:data=>data,}}}在我的go后端,我为所有POST请求设置了处理函数//GraphQLreturnsanhttp.HandlerFuncforour/gra
最近我正在尝试使用GoLang作为Graphql服务器来实现一个MutationRequest,基本上这是我发送的查询:正如你所看到的,它是一个对象数组,其中包含name和一个字符串数组mutation{CellTest(cells:[{name:"lero",child:["1","2"]},{name:"lero2",child:["12","22"]}]){querybody}}在我的Go代码中,我有一个类型对象,它将设置发送的值typeCellstruct{namestring`json:"name"`child[]string`json:"child"`}和一个将成为[]Ce
对象内部的对象本身被解析为一个空字段。输入:{Products(search:{limit:1,filters:{product_id:{gte:5}}}){data{product_idproduct_namesales_history{total_check}}}}输出:{"data":{"Products":{"data":[{"product_id":35,"product_name":"testpr","sales_history":{}}]}}}产品类型:gql.ProductType=graphql.NewObject(graphql.ObjectConfig{Name:
我们在Golang和Python上有几个微服务,在Golang上我们正在编写财务操作,在Python在线商店逻辑上,我们想为我们的前端创建一个API,但我们不知道如何去做。我读过API网关,如果Golang创建自己的GraphQL服务器,Python将创建另一个,它们都将与第三个graphql服务器通信,后者将为前端生成API,这是否正确。 最佳答案 我不太了解您的服务细节,但我在不同项目中成功使用的伟大模式就是您提到的GraphQL网关。您将创建一个服务,我更喜欢在Node.js中创建它,所有来自前端的请求都将通过该服务。然后从G
我正在尝试在基于Apollo的graphql服务器(2.0)中为我的基于JWT的身份验证找出这种情况。基本上,用户在登录后会从服务器获取accessToken和refreshToken。AccessToken在一定时间后过期,服务器发送错误消息指示token过期(TokenExpiredError),然后客户端需要通过传递refreshToken与服务器通信以获得新的accessToken。流程如下-TokenExpiredError发生在客户端获取该错误使用旧的accessToken对所有请求进行排队(这样服务器就不会被太多的refreshToken调用淹没,并且服务器会生成许多ac
我从GraphQL开始,我无法理解如何在GraphQL中抛出错误我浏览了网络上的几篇文章,但几乎所有文章都使用Apollo,而且代码结构看起来与我的工作方式大不相同。考虑这段代码,我在这里进行突变,现在如何发送带有错误的响应消息并在出现错误时更改header状态消息?AddNewPersonalInfo:{type:userDashboardType,args:{parameter:{type:userCreationlInputType}},resolve:async(parent,args,context)=>{args.parameter.userId=context.req.h
我怎样才能返回多个这样的错误消息?"errors":[{"message":"firsterror","locations":[{"line":2,"column":3}],"path":["somePath"]},{"message":"seconderror","locations":[{"line":8,"column":9}],"path":["somePath"]},]在我的服务器上,如果我执行throw('anerror'),它会返回。"errors":[{"message":"anerror","locations":[{}],"path":["somePath"]}]我