问题标签 [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.

0 投票
3 回答
2450 浏览

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 它?

0 投票
1 回答
854 浏览

graphql - 将 Graphql 输入参数传递给指令

我有一个简单的 graphql 查询和一个指令

问题是我正在使用GQLGen为 Go 生成我的样板代码,并且指令的处理方式与输入值不同。这提出了一个独特的挑战,授权逻辑几乎与实际的数据库读取隔离,这使得逻辑非常低效,因为我必须使数据库读取两次:在验证期间和实际的数据库读取。数据库读取也需要验证所需的数据,我必须编辑我的整个代码才能将这些数据注入到上下文中。有没有办法将输入参数动态传递给指令并动态完成验证,这首先是一个好的做法吗?

0 投票
0 回答
382 浏览

go - 使用 Go 客户端测试 GraphQL Go 服务器

我正在使用 github.com/99designs/gqlgen 生成我的服务器端 Go 代码。这可以正常工作,我可以使用内置的 GraphQL Playground 与我的查询、突变等进行交互。

现在我正在尝试在 Go 中为服务器编写测试。测试可以访问所有 GraphQL 生成的代码,但我不知道如何在我的测试中利用它:在这种情况下,我的测试充当客户端。

我已经在各个地方对此进行了研究,我发现的最接近的是:https ://github.com/machinebox/graphql但在他们提供的唯一示例中,看起来他们正在手动构建请求。

这是我的第一个 GraphQL 项目,我还在学习,所以也许我在这里遗漏了一些东西。我的理解是,使用 GraphQL 我定义了一个模式,然后生成特定于语言的代码(go、swift、java 等)。然后我获取生成的代码并使用它与服务器交互。那里有我找不到的 GraphQL 客户端吗?

0 投票
1 回答
2962 浏览

unit-testing - 在 Golang 中对 GraphQL 进行单元测试

在这种情况下,我正在使用

有什么简单的例子可以测试我的 Mutation 和 Query 吗?我很乐意为此获得建议。我试图找到,但到目前为止找不到任何东西,

谢谢你 :)

0 投票
0 回答
234 浏览

arrays - 如果某些键为 NULL,如何使用 gqlgen 和 dataloaden (graphql dataloader) 对指针切片进行排序?

我有这些实体:

  • Golang结构:
  • GraphQL 架构:

如你看到的:

  1. City是强制性的

  2. TeamTeamID在 Golang 结构中)不是强制性的,所以我使用的是指针类型 ( *)

我现在不明白的是如何使用dataloaden(一个 GraphQL 数据加载器)。

这里生成的CityById加载器代码,生成go run github.com/vektah/dataloaden CityByIdLoader int *my_project/entities.City

为什么[]*intTeamID

TeamById这是加载程序的生成代码,使用以下代码生成go run github.com/vektah/dataloaden TeamByIdLoader *int *my_project/entities.Team::

如果由于NULL.keys

0 投票
0 回答
105 浏览

go - gqlgen:生成了不需要的解析器

我正在使用gqlgen,我想向查询解析器添加一个新方法。添加的方法如下所示:

for 的类型Foo已经在文件中声明,并且被正确映射到.go文件中的模型(我知道这是因为以前使用该类型的方法)。当我尝试从上述添加生成代码时,FooResolver会在ResolverRoot.

任何想法为什么会这样?

0 投票
1 回答
521 浏览

go - 如何为 CORS 问题启用 gqlgen 服务器?

目标:

运行在 5000 端口上的 Svelte 应用程序想要从运行在 8080 端口上的 gqlgen GraphQL 服务器查询数据,两者都在 localhost 上。我尝试查询公共 graphql API,例如https://api.react-finland.fi/graphql 只是为了测试我的 Svelte 应用程序(端口:5000)是否运行良好并且确实如此。所以我认为问题出在我的 Go graphql 服务器(端口:8080)上。

系统

试过

根据官方网站,我已经尝试过他们的方法

这是我的代码:

结果

我得到了这些错误:

怎么解决?

我已经阅读了相当多的文档并在谷歌上搜索了......但无法弄清楚究竟如何,我不知道如何调试以找到解决方案。到目前为止,我刚学了两天的 GO。有人可以帮忙吗?谢谢!

0 投票
1 回答
102 浏览

go - 如何设置 model.fields 的类型?

如何在 gqlgen 中设置 model.fields 的类型?

model.Fields[0].Type在这里使用过,我只想在string这里使用:

我想我应该实现types.Type接口,但是有没有更简单的方法呢?

0 投票
0 回答
279 浏览

mongodb - golang mongodb 构建引用关系

我在 graphql 中与 Mongo go 驱动程序有这种一对多的引用关系。

我知道我可以使用聚合框架来查询引用关系。

但是,如果我想在创建用户的同时还创建一个帖子,我该怎么办?

collection.InsertOne在解析器中发送两个?

0 投票
1 回答
1299 浏览

go - 使用 gqlgen 为 GraphQL 添加带有 go-chi 路由器的身份验证中间件

按此使用 handler.NewDefaultServer(...) 使用 go-chi 路由器时无法连接到 graphql Playground

参考 https://gqlgen.com/recipes/authentication/