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服务就是如此简单容易。