使用Hot Chocolate创建ASP.NET Core GraphQL服务
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Hot Chocolate创建ASP.NET Core GraphQL服务相关的知识,希望对你有一定的参考价值。
GraphQL介绍
GraphQL是一个用于API的查询语言,是一个使用基于类型系统来执行查询的服务端运行时。GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余。
Hot Chocolate介绍
Hot Chocolate是.NET平台下的开源GraphQL服务器,符合最新的GraphQL 2021草案规范。
Hot Chocolate消除了构建成熟的GraphQL服务器的复杂性,可以让我们轻松实现ASP.NET Core GraphQL服务器。
Demo
下面,我们就来演示如何使用Hot Chocolate创建ASP.NET Core GraphQL服务。
1.引用Nuget包
创建ASP.NET Core Web API项目,安装如下Nuget包:
HotChocolate.AspNetCore
2.创建模型
假设,我们要查询用户相关数据。
新增User.cs文件,代码如下:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
3.创建Query类
新增Query.cs文件,这个类将包含我们需要执行的所有查询,代码如下:
public class Query
{
public async Task<User> GetUser(int id)
{
return new User { Id = id, Name = "Name_"+id, Age = new Random().Next(20,30) };
}
}
这里我用的假数据,你也可以改成使用数据库。
4.配置GraphQL
我们需要配置应用程序以使用GraphQL。修改Startup.cs中的代码如下:
public void ConfigureServices(IServiceCollection services)
{
...
services
.AddGraphQLServer()
.AddQueryType<Query>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseEndpoints(endpoints =>
{
endpoints.MapGraphQL();
endpoints.MapControllers();
});
}
5.运行GraphQL
运行应用程序,访问https://启动地址/graphql/,你应该可以打开Hot Chocolate内置的GraphQL IDE(Banana Cake Pop)。
我们可以通过输入GraphQL查询语句,并点击Execute
按钮来获取我们想要的数据:
结论
使用Hot Chocolate,创建GraphQL服务就是如此简单容易。
以上是关于使用Hot Chocolate创建ASP.NET Core GraphQL服务的主要内容,如果未能解决你的问题,请参考以下文章
.NET 遇上 GraphQL使用 Hot Chocolate 构建 GraphQL 服务
如何使用 DataLoader 与 Hot Chocolate GraphQL 进行连接
Hot Chocolate:转换 [UseFiltering] 查询的结果
如何在 .Net 5 中使用 Hot Chocolate 在 GraphQL 中修改响应 Cookie