日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GraphQL:简单开开始一个查询

發布時間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GraphQL:简单开开始一个查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GraphQL 既是一種用于 API 的查詢語言也是一個滿足你數據查詢的運行時。GraphQL 對你的 API 中的數據提供了一套易于理解的完整描述,使得客戶端能夠準確地獲得它需要的數據,而且沒有任何冗余,也讓 API 更容易地隨著時間推移而演進,還能用于構建強大的開發者工具。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——出自?https://graphql.cn

如果換個簡單粗暴的說法就是:減少API中查詢的代碼。這對寫api的程序員是個福音,那這時你肯定想,減少后,那功能會減少嗎?其實正好相反,會增加查詢場景。

關于GraphQL的基礎知識,可以通過https://grapql.cn來學習,這里不再贅述,當了解GraphQL基礎知識后,這里要說明的是由Michael Staib主導的asp.net core上的GraphQL的實現。

首先安裝兩個Nuget包

HotChocolate.AspNetCore

HotChocolate.Data

在startup中注入graphql相關的實體類型?

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; }} }

然后用http://localhost:5000/graphql,HotChocolate實現了一套UI

也可以用Postman來訪問(可見GraphQL正在流行起來)

{students(where:{ and:[{sex:{eq:true}}{age:{gt:21 }}]}){stuNonamesexage} }

GraphQL正是通過上面的語法來實現自定義查詢,條件可以自由組合,返回的結果當然也是根據條件而來的,就像我們寫SQL語句,select什么字段,where條件是什么,提升了靈活性,而不用每種查詢我們都在后臺代碼中實現一下,這也正是它的重點。

總結

以上是生活随笔為你收集整理的GraphQL:简单开开始一个查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。