问题标签 [gqlgen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 将 CORS 标头添加到 gqlgen 默认示例中?
我正在尝试使用 React 设置一个基本堆栈,Apollo 由 graphQL 提供服务,由 Go 通过 gqlgen 提供服务。
我正在遵循 gqlgen 的入门指南,它工作正常。
我也在关注 Apollo 的入门指南,它运行良好。
我的问题在于当我尝试将两者缝合在一起时,chrome 不允许我 ping 后端。我收到一个 CORS 预检标头错误,这是可以理解的,考虑到 React 已打开localhost:3000
且 Go 服务器已打开localhost:8080
gqlgen 提供了一个有用的示例,说明如何使用 chi 和 go-cors 在 Go 服务器上运行 CORS。然而,提供的示例基于gqlgen的星球大战示例,而不是入门示例。
我将 CORS 示例修改为以下内容:
服务器运行,但通过 Playground 测试查询(localhost:8080 所以 CORS 在这里应该无关紧要)给出以下错误:
即使我只设置 Chi 路由器,这也不起作用:
Server Cannot Be Reached
当我访问 localhost:8080 游乐场时,我得到了一个。
如何在 gqlgen Go 服务器上正确启用 CORS,以便 React 可以 ping 它?
graphql - 将 Graphql 输入参数传递给指令
我有一个简单的 graphql 查询和一个指令
问题是我正在使用GQLGen为 Go 生成我的样板代码,并且指令的处理方式与输入值不同。这提出了一个独特的挑战,授权逻辑几乎与实际的数据库读取隔离,这使得逻辑非常低效,因为我必须使数据库读取两次:在验证期间和实际的数据库读取。数据库读取也需要验证所需的数据,我必须编辑我的整个代码才能将这些数据注入到上下文中。有没有办法将输入参数动态传递给指令并动态完成验证,这首先是一个好的做法吗?
go - 使用 Go 客户端测试 GraphQL Go 服务器
我正在使用 github.com/99designs/gqlgen 生成我的服务器端 Go 代码。这可以正常工作,我可以使用内置的 GraphQL Playground 与我的查询、突变等进行交互。
现在我正在尝试在 Go 中为服务器编写测试。测试可以访问所有 GraphQL 生成的代码,但我不知道如何在我的测试中利用它:在这种情况下,我的测试充当客户端。
我已经在各个地方对此进行了研究,我发现的最接近的是:https ://github.com/machinebox/graphql但在他们提供的唯一示例中,看起来他们正在手动构建请求。
这是我的第一个 GraphQL 项目,我还在学习,所以也许我在这里遗漏了一些东西。我的理解是,使用 GraphQL 我定义了一个模式,然后生成特定于语言的代码(go、swift、java 等)。然后我获取生成的代码并使用它与服务器交互。那里有我找不到的 GraphQL 客户端吗?
unit-testing - 在 Golang 中对 GraphQL 进行单元测试
在这种情况下,我正在使用
- 回声
- mongo驱动程序(MongoDB)
- gqlgen graphql 类型安全
有什么简单的例子可以测试我的 Mutation 和 Query 吗?我很乐意为此获得建议。我试图找到,但到目前为止找不到任何东西,
谢谢你 :)
arrays - 如果某些键为 NULL,如何使用 gqlgen 和 dataloaden (graphql dataloader) 对指针切片进行排序?
我有这些实体:
- Golang结构:
- GraphQL 架构:
如你看到的:
City
是强制性的Team
(TeamID
在 Golang 结构中)不是强制性的,所以我使用的是指针类型 (*
)
我现在不明白的是如何使用dataloaden
(一个 GraphQL 数据加载器)。
这里生成的CityById
加载器代码,生成go run github.com/vektah/dataloaden CityByIdLoader int *my_project/entities.City
:
为什么[]*int
呢TeamID
?
TeamById
这是加载程序的生成代码,使用以下代码生成go run github.com/vektah/dataloaden TeamByIdLoader *int *my_project/entities.Team
::
如果由于NULL
.keys
go - gqlgen:生成了不需要的解析器
我正在使用gqlgen
,我想向查询解析器添加一个新方法。添加的方法如下所示:
for 的类型Foo
已经在文件中声明,并且被正确映射到.go
文件中的模型(我知道这是因为以前使用该类型的方法)。当我尝试从上述添加生成代码时,FooResolver
会在ResolverRoot
.
任何想法为什么会这样?
go - 如何为 CORS 问题启用 gqlgen 服务器?
目标:
运行在 5000 端口上的 Svelte 应用程序想要从运行在 8080 端口上的 gqlgen GraphQL 服务器查询数据,两者都在 localhost 上。我尝试查询公共 graphql API,例如https://api.react-finland.fi/graphql 只是为了测试我的 Svelte 应用程序(端口:5000)是否运行良好并且确实如此。所以我认为问题出在我的 Go graphql 服务器(端口:8080)上。
系统
试过
根据官方网站,我已经尝试过他们的方法。
这是我的代码:
结果
我得到了这些错误:
怎么解决?
我已经阅读了相当多的文档并在谷歌上搜索了......但无法弄清楚究竟如何,我不知道如何调试以找到解决方案。到目前为止,我刚学了两天的 GO。有人可以帮忙吗?谢谢!
go - 如何设置 model.fields 的类型?
如何在 gqlgen 中设置 model.fields 的类型?
我model.Fields[0].Type
在这里使用过,我只想在string
这里使用:
我想我应该实现types.Type接口,但是有没有更简单的方法呢?
mongodb - golang mongodb 构建引用关系
我在 graphql 中与 Mongo go 驱动程序有这种一对多的引用关系。
我知道我可以使用聚合框架来查询引用关系。
但是,如果我想在创建用户的同时还创建一个帖子,我该怎么办?
collection.InsertOne
在解析器中发送两个?
go - 使用 gqlgen 为 GraphQL 添加带有 go-chi 路由器的身份验证中间件
按此使用 handler.NewDefaultServer(...) 使用 go-chi 路由器时无法连接到 graphql Playground