知海

C# / .NET:SAHB.GraphQLClient(从 C# 类生成查询的客户端)

graphql-github-io-zh-Hans生态项目与库

简介

SAHB.GraphQLClient 是一个面向 C# / .NET 的 GraphQL 客户端库,它允许开发者直接通过 C# 类来定义和生成 GraphQL 查询,从而避免手写原始查询字符串。该项目的设计目标是让类型安全贯穿整个查询构建过程,并减少客户端与服务端数据模型之间的手动映射。

核心特性

  • 类型安全查询生成:通过 C# 类定义查询结构,编译器会在编译期帮助检查字段与类型是否正确。
  • 无需手写查询字符串:库自动将 C# 类模型转换为对应的 GraphQL 查询语法,简化开发流程。
  • 面向 .NET 生态:适用于基于 .NET 的客户端应用,易于与现有 C# 服务或工具链集成。
  • 开源可扩展:遵循开源协议,社区可参与贡献与定制。

快速上手

1. 安装

通过 NuGet 包管理器安装:

bash 复制代码
dotnet add package SAHB.GraphQLClient

2. 定义查询模型

假设你的 GraphQL 服务具有以下类型:

graphql 复制代码
type Hero {
    name: String
    friends: [Character]
}

可以定义对应的 C# 类(通常使用 POCO):

csharp 复制代码
public class Hero
{
    public string Name { get; set; }
    public IEnumerable<Character> Friends { get; set; }
}

3. 生成并执行查询

csharp 复制代码
using SAHB.GraphQLClient;

var client = new GraphQLClient("https://your-api/graphql");

var query = client.Query<Hero>()
    .Field(h => h.Name)
    .Field(h => h.Friends)
    .Build();

var result = await client.ExecuteAsync(query);

库会根据 Hero 类的字段选择自动生成查询字符串,并反序列化响应结果。

相关链接

提示:完整用法、高级配置请参阅仓库内的 README 文档。

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。