using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;namespace GraphQLDemo00
{public class Startup{public void ConfigureServices(IServiceCollection services){services.AddGraphQLServer()//引入GraphQL .AddQueryType<Query>()//注入查詢類型 .AddProjections()//映射字段.AddFiltering()//注入查詢過濾器.AddSorting();//注入排序} public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseRouting();app.UseEndpoints(endpoints =>{endpoints.MapGraphQL();});}}
}
定義查詢
using HotChocolate.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace GraphQLDemo00
{/// <summary>/// 查詢類/// </summary>public class Query{/// <summary>/// 查詢學生/// </summary>/// <returns></returns>[UseFiltering][UseSorting][UseProjection]public List<Student> GetStudents(){return new List<Student>{new Student { StuNo="N0001", Name="張三", Age=21, Sex=true },new Student { StuNo="N0002", Name="李四", Age=22, Sex=false },new Student { StuNo="N0003", Name="王五", Age=23, Sex=true }};}}/// <summary>/// 學生實體/// </summary>public class Student{/// <summary>/// 學號/// </summary>public string StuNo { get; set; }/// <summary>/// 姓名/// </summary>public string Name { get; set; }/// <summary>/// 年齡/// </summary>public int Age { get; set; }/// <summary>/// 性別/// </summary>public bool Sex { get; set; }}
}