C# / .NET:SAHB.GraphQLClient(从 C# 类生成查询的客户端)
graphql-github-io-zh-Hans生态项目与库
简介
SAHB.GraphQLClient 是一个面向 C# / .NET 的 GraphQL 客户端库,它允许开发者直接通过 C# 类来定义和生成 GraphQL 查询,从而避免手写原始查询字符串。该项目的设计目标是让类型安全贯穿整个查询构建过程,并减少客户端与服务端数据模型之间的手动映射。
- 项目名称:SAHB.GraphQLClient
- 描述:支持从 C# 类生成查询的 GraphQL 客户端
- 官方仓库:https://github.com/sahb1239/SAHB.GraphQLClient
- GitHub 组织:sahb1239
核心特性
- 类型安全查询生成:通过 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 文档。
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
