用 HotChocolate 实现 GraphQL 接口需四步:1. 创建 ASP.NET Core 项目并安装 HotChocolate.AspNetCore 等包;2. 用代码优先方式定义 Object Type(如 BookType);3. 编写 Query 类并注册为根查询类型;4. 在中间件中调用 MapGraphQL() 启用 /graphql 端点。

用 HotChocolate 实现 GraphQL 接口在 C# 中非常直观,核心是定义类型、编写解析器、注册服务并启用中间件。不需要手写 HTTP 路由或序列化逻辑,框架自动处理查询解析、字段执行和错误响应。
1. 创建基础项目并安装 HotChocolate
新建一个 ASP.NET Core Web API 项目(.NET 6+ 推荐),通过 NuGet 安装关键包:
- HotChocolate.AspNetCore(提供服务器中间件)
- HotChocolate.Types(用于定义 Schema 类型)
- 可选:HotChocolate.Data(简化 EF Core 集成)
安装命令示例:
dotnet add package HotChocolate.AspNetCore2. 定义 GraphQL 类型(Object Type)
HotChocolate 支持代码优先(Code-First)方式。比如有一个 C# 模型:
public class Book { public Guid Id { get; set; } public string Title { get; set; } public string Author { get; set; } }对应定义 GraphQL 类型:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
3. 编写 Query 类与解析器
创建一个普通类,用 [GraphQLName("Query")] 标记,并添加返回数据的方法:
public class Query { public IEnumerable<Book> GetBooks() => new[] { new Book { Id = Guid.NewGuid(), Title = "C# 编程入门", Author = "张三" } }; }在 Program.cs 中注册它为根查询类型:
services.AddGraphQLServer().AddQueryType<Query>().AddType<BookType>();4. 启用 GraphQL 端点
在 Program.cs 的中间件管道中添加:
app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGraphQL(); });默认端点是 /graphql,支持 GraphiQL(开发时自动启用)——访问 https://www.php.cn/link/c3a5d96180f4811f93e797bb2bca08ee 即可调试。
基本上就这些。进阶可用 DataLoader 避免 N+1 查询,加 Mutation 支持修改操作,或集成 EF Core 自动映射数据库表。不复杂但容易忽略的是:确保所有公开字段都有 getter,且类型注册顺序合理(如 Query 依赖的类型要先注册)。

















