全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#如何实现GraphQL接口 HotChocolate GraphQL框架教程

用 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.AspNetCore

2. 定义 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 类型:

public class BookType : ObjectType { protected override void Configure(IObjectTypeDescriptor descriptor) { descriptor.Field(x => x.Title).Description("书名"); descriptor.Field(x => x.Author).Description("作者"); } }

3. 编写 Query 类与解析器

创建一个普通类,用 [GraphQLName("Query")] 标记,并添加返回数据的方法:

public class Query { public IEnumerable GetBooks() => new[] { new Book { Id = Guid.NewGuid(), Title = "C# 编程入门", Author = "张三" } }; }

在 Program.cs 中注册它为根查询类型:

services.AddGraphQLServer().AddQueryType().AddType();

4. 启用 GraphQL 端点

在 Program.cs 的中间件管道中添加:

app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGraphQL(); });

默认端点是 /graphql,支持 GraphiQL(开发时自动启用)——访问 https://www./link/c3a5d96180f4811f93e797bb2bca08ee 即可调试。

基本上就这些。进阶可用 DataLoader 避免 N+1 查询,加 Mutation 支持修改操作,或集成 EF Core 自动映射数据库表。不复杂但容易忽略的是:确保所有公开字段都有 getter,且类型注册顺序合理(如 Query 依赖的类型要先注册)。


# app  # 路由  # c#  # .net  # graphql  # 中间件  # String  # Object  # void  # 接口  # class  # public  # protected  # 数据库  # http  # 并安装  # 的是  # 进阶  # 都有  # 不需要  # 可选  # 要先  # 一个普通  # 它为  # 新建一个 


相关文章: 免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  建站为何优先选择香港服务器?  营销式网站制作方案,销售哪个网站招聘效果最好?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何通过二级域名建站提升品牌影响力?  金*站制作公司有哪些,金华教育集团官网?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  太原网站制作公司有哪些,网约车营运证查询官网?  C#如何序列化对象为XML XmlSerializer用法  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  西安大型网站制作公司,西安招聘网站最好的是哪个?  视频网站制作教程,怎么样制作优酷网的小视频?  ,网页ppt怎么弄成自己的ppt?  python的本地网站制作,如何创建本地站点?  如何快速搭建高效香港服务器网站?  制作电商网页,电商供应链怎么做?  建站之星安装步骤有哪些常见问题?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  上海网站制作开发公司,上海买房比较好的网站有哪些?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  已有域名和空间,如何快速搭建网站?  如何用腾讯建站主机快速创建免费网站?  建站主机选购指南:核心配置与性价比推荐解析  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  重庆市网站制作公司,重庆招聘网站哪个好?  如何快速启动建站代理加盟业务?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  英语简历制作免费网站推荐,如何将简历翻译成英文?  文字头像制作网站推荐软件,醒图能自动配文字吗?  Python lxml的etree和ElementTree有什么区别  如何在景安服务器上快速搭建个人网站?  如何高效利用亚马逊云主机搭建企业网站?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  如何在宝塔面板创建新站点?  如何选择适配移动端的WAP自助建站平台?  成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?  定制建站流程步骤详解:一站式方案设计与开发指南  建站之星CMS建站配置指南:模板选择与SEO优化技巧  如何通过云梦建站系统实现SEO快速优化?  如何在IIS7上新建站点并设置安全权限?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  建站主机如何选?性能与价格怎样平衡?  如何快速搭建高效简练网站?  如何在服务器上三步完成建站并提升流量?  制作网站的公司有哪些,做一个公司网站要多少钱?  如何配置WinSCP新建站点的密钥验证步骤?  网站app免费制作软件,能免费看各大网站视频的手机app? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。