问题标签 [graphql-dotnet]

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 投票
2 回答
438 浏览

asp.net-core - 在 GraphQL.Types.Schema 中定义 FieldNameConverter 在 asp.net 核心中不起作用

我正在使用带有 asp.net 核心的graphql-dotnetgraphql-dotnet 服务器。我已经通过以下方式配置了架构。

在这里我添加了FieldNameConverter = new PascalCaseFieldNameConverter();但我没有得到输出的变化。输出总是驼峰式。我如何可以忽略骆驼套管或使用 Pascale 套管。

对于 ConfigureServices,我使用了以下

services.AddSingleton();

在里面Configure我使用了以下

期待您的帮助。

0 投票
1 回答
250 浏览

c# - 如何使用 GraphQL.NET 为 graphql 查询响应生成动态路径值?

我有带有以下响应的REST API ( api/tax/v1/countries )。在下面的 pngimagePath 和 svgimagePath 属性指向图像类型端点(api/tax/v1/country/Country1/{FlagPNG 或 FlagSVG}

在这种情况下,路径是动态生成的。

我想使用 GraphQL.NET 生成图像路径。

谁能帮我知道如何实现这个功能

0 投票
2 回答
8877 浏览

c# - 如何在 Resolver 函数级别使用 GraphQL.NET 实现授权?

我正在寻找有关如何使用 GraphQL.NET 和 ASP.NET CORE 2 在解析器功能级别实现授权的示例代码和示例。

基本上,如果请求未经授权,我会尝试阻止执行查询。

任何人都可以帮助我获得一些好的教程或代码示例作为实现的参考。

0 投票
1 回答
887 浏览

c# - 类型:字节不能被有效地强制转换为 GraphQL 类型

这是我用来获取 ByteArrayContent 类型的代码:

在执行上面的代码时,我得到了下面提到的错误。类型: Byte 无法有效地强制转换为 GraphQL 类型\r\n参数名称: type\r\n at Type GraphQL。

从链接: https ://github.com/graphql-dotnet/graphql-dotnet/issues/458 ,提到支持ByteGraphType。我正在使用带有 version:2.3.0 的 GraphQL.net nuget 包。所以我相信它应该支持ByteGraphType。

你能帮我看看如何解决这个问题。

0 投票
0 回答
830 浏览

c# - 使用 GraphQL.NET 和 ASP.NET Core 2 对字段实施授权

我有一个使用 ASP.NET WEB API 2 开发的现有 REST API,其中通过将所有控制器名称和操作方法详细信息存储在 xml 文件中来处理授权。

WebAPIAuthorization.xml:

代码:

对 /api/profile 的任何请求都需要验证以进行授权检查。在 GetInitialAuthorization() 中,初始授权是根据请求中存在的 cookie 完成的,然后在方法中完成另一项检查: AssertAuthorization(initialAuthorizationStatus, request) 对 WebAPIAuthorization.xml 进行检查以查找存在控制器和动作方法。

对于所有其他 REST API 端点,没有授权。

我想在同一行上为 GraphQL 字段实现这一点。

任何人都可以帮助我在实施此授权政策方面提供一些指导。

0 投票
0 回答
992 浏览

asp.net - InputObjectGraphType 的字段解析器

我在 ASP.NET Web API 上工作,并通过GraphQL for .NET添加了对 GraphQL 请求的支持。我的查询按预期工作,但我现在正在努力使用与突变相同的逻辑。

我的查询有以下逻辑:

我的解析器返回一个ContactDomainEntity,然后将其解析为ContactType

这一切都非常好,地址列表使用自己的解析器 (LocationResolvers.ResolveAddresses) 解析,这使其可重用并有助于分离关注点。

现在我希望能够编辑一个联系人,并希望使用相同的逻辑,其中子对象(如地址列表)将由他们自己的解析器处理。所以我创建了以下突变:

使用ContactInputType

(请注意,我使用 DTO 将字段映射到一个对象,这在我的情况下是有意义的,但这与我的问题无关)

我的问题是只有解析器“ContactResolvers.UpdateContact”被调用。永远不会命中字段解析器“LocationResolvers.ManageAddresses”。如果我用以下内容替换地址字段:

myContactInputDTO已正确填充(即其属性“地址”包含正确的数据),但这意味着我无法控制对象属性的映射方式,并且必须依赖它们具有相同的名称,并且无法添加我的解析器可能具有的其他逻辑。


tl;博士如何使用字段解析器InputObjectGraphType?返回时它工作正常,ObjectGraphType但我无法让它在接收端工作。

0 投票
1 回答
773 浏览

c# - 我可以在我的 GraphQL 中将我的 .NET 字典表示为 JSON 字典吗?

当我序列化为 JSON 时,我习惯于将 .NET 字典变成对象,其中键作为属性,值作为它们的值。(Json.Net 文档有一个简洁的例子。

我正在使用 GraphQL 并努力实现类似的结果。我的这个根查询的数据基本上是一个Dictionary<MyEnum,Dictionary<string,string>>. 到目前为止,我最接近的是:

但我希望它更接近这一点:

我很挣扎,因为GraphQL .Net 似乎只理解列表,而不理解字典。

我不觉得我正在尝试做的事情是不合理的。让键成为键似乎是正确的,并且是共享此数据的最有用的方式(例如,正如此答案所建议的那样)。

有没有办法在 GraphQL 中做到这一点?有没有办法在 GraphQL .Net中做到这一点?

0 投票
2 回答
3180 浏览

c# - 为什么 graphql-dotnet 会为此架构返回“预期的非空值”错误?

我有一个简单的模式,我试图查询如下:

但是“graphiql”会引发以下错误,甚至似乎都没有运行我的查询。

我的架构有什么问题(如下)?我正在新建一个子对象,所以我不明白为什么错误消息暗示该值为空。

如果我用 StringGraphType 替换 MySubObjectGraphType 代码可以正常工作,所以问题一定出在 MySubObjectGraphType 的配置上。

请帮忙?我正在使用 v2.4。

0 投票
0 回答
234 浏览

asp.net-core - GraphQL DotNet 遇到错误请求错误

我正在使用GraphQL.Net并在尝试使用 API 时获得以下信息。

关于错误的原因是什么非常模糊。我的查询/类型的设置有问题吗?还是在我的要求中?是关于身份验证吗?

我不确定要分享哪些代码,所以我将我的 API 库上传到:https ://github.com/jonasarcangel/GraphQLIssue

请求载荷如下(使用 Apollo Angular):

0 投票
1 回答
1172 浏览

c# - GraqhQL 问题与 JWT 字段上的身份验证有关

所以我有 graphql 作为后端和 React / Apollo 作为前端。我已经实现了我的 JWT Token Auth,效果很好。

除此之外,我还有我的中间件,其中给出了 HttpContext 并且用户正确加载了所有声明:

直到这里它工作得非常好。

可悲的是,我正在努力挣扎。我添加了 GraphQL.Authorization Nuget,但所有给定的信息都不足以让我用它构建一些工作代码。

我可以做的当然是访问查询解析器中的 userContext 并“手动”检查它,但我尽量避免它;)

所以我想要的是:检查具有一个或多个角色的给定声明的字段级别(查询或突变)声明。