【问题标题】:ASP.NET Core API with GraphQL request using HotChocolate in itself带有 GraphQL 请求的 ASP.NET Core API 本身使用 HotChocolate
【发布时间】:2022-09-25 20:18:14
【问题描述】:

在我的 ASP NET Core 6 api 中,我们使用 Dapper 使用查询 (SQL) 进行查询,键入模型并在某些端点中返回结果或在某些服务中使用,例如,生成 PDF 报告并返回的服务在端点上的文件中

在查询检索生成 PDF 所需数据的情况下,我将如何使用安装在应用程序 (HotChocolate) 中的 GraphQL 来执行此操作?

简而言之,如何从应用程序到应用程序本身使用 GraphQL?

    标签: .net asp.net-core graphql hotchocolate


    【解决方案1】:

    问题“简而言之,如何从应用程序到应用程序本身使用 GraphQL?”可以从两个方面来理解。

    1)如何手动执行查询文档(id.string)?

    如果您想直接执行查询,您可以使用IRequestExecutor。如果您查看HttpGetMiddleware,您会看到这是执行查询的方式。要获取IRequestExecutor,请从 DI 获取 IRequestExecutorResolver

    // From DI
    IRequestExecutorResolver resolver = ...;
    // See next snippet
    IQueryRequest request = ...;
    
    IRequestExecutor executor = await resolver.GetRequestExecutorAsync();
    IExecutionResult result = await executor.ExecuteAsync(request);
    

    类型 IQueryRequest 表示 GraphQL 请求。可以使用IQueryRequestBuilder 创建。如果您的解析器使用“特殊”依赖项,您必须在创建请求时明确指定它们。要检查什么算作“特殊”依赖,请检查 DefaultHttpRequestInterceptor。如果您在自己的拦截器中添加额外的“特殊”依赖项,情况也是如此。

    IQueryRequest request = new QueryRequestBuilder().SetQuery("query text as string").SetVariableValues(/* if your query needs varaibles */).Create();
    

    2) 如何使用 .NET 的 GraphQL 客户端?

    StrawberryShake 是 ChilliCream 制作的 .NET GraphQL 客户端。这将为您的查询生成 .NET 类型并通过网络调用查询。本质上,您可以像任何其他公共客户端一样从其端点上的 GraphQL 服务器进行查询,即使您是从同一进程中进行查询。我不会详细说明这一点,因为我包含的链接向您展示了基本示例(而直接使用 IRequestExecutor 在文档中没有描述)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 2019-12-09
      • 2020-10-01
      • 2018-09-28
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      相关资源
      最近更新 更多