使用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按钮来获取我们想要的数据:

70611346026ceb3baa15c7e31bf5d633.png

结论

使用Hot Chocolate,创建GraphQL服务就是如此简单容易。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296171.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC中的文件读写技术

计算机室如何管理自身所存放着的大量的信息的呢&#xff1f;windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。 面向存储的文件技术 什么是文件&#xff1f;计算机中&#xff0c;一篇文章、一幅图片、一个程序等都是以文…

[转]十五分钟介绍 Redis数据结构

下面是一个对Redis官方文档《A fifteen minute introduction to Redis data types》一文的翻译&#xff0c;如其题目所言&#xff0c;此文目的在于让一个初学者能通过15分钟的简单学习对Redis的数据结构有一个了解。 Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统…

为什么大部分男生比女生高?原因让你意想不到

全世界只有3.14 % 的人关注了爆炸吧知识古往今来&#xff0c;不论东西南北&#xff0c;男女之间的画风都是&#xff1a;这样的▼这样的▼大家可以看出一个早已成为常识的问题&#xff1a;男人普遍比女人要高、要强壮&#xff0c;说白了就是四肢发达。然而&#xff0c;这到底是为…

MyBatis --教程

2019独角兽企业重金招聘Python工程师标准>>> 本文参考如下这篇优秀文章 http://www.yihaomen.com/article/java/302.htm 一、什么是myBatis&#xff1f; myBatis是一个基于java的持久层框架&#xff0c;它支持普通SQL查询、支持存储过程和高级映射。它使用简单的XML…

System.Text.Json 中的 JsonExtensionData

System.Text.Json 中的 JsonExtensionDataIntro最近两天在排查我们 API 的一个问题&#xff0c;查看源码过程中发现 System.Text.Json 里有一个有意思的 JsonExtensionData在反序列化的时候&#xff0c;如果反序列化的 Model 中没有对应的属性信息&#xff0c;这些信息就会丢失…

“中科院博士后当辅警”,网友却吵翻了:家里有矿?

全世界只有3.14 % 的人关注了爆炸吧知识这两天的热搜上有一位小哥哥特别引人关注有人看到了发际线有人看到了书香门第的出身更多人留意到了他的学历和身份香港大学博士、中科院博士后四川公安一名辅警↓↓↓缪元颖&#xff0c;四川省成都市公安局高新区分局的一名辅警&#xff…

马的种类(七)

鄂伦春马<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />鄂伦春马产于大小兴安岭山区。繁殖性能好&#xff0c;在小群自由交配的情况下&#xff0c;有些母马一年产一驹。生长缓慢&#xff0c;6~7岁时才能结束生长发育期。一般在…

OAuth 2.0 的探险之旅

前言OAuth 2.0 全称是 Open Authorization 2.0, 是用于授权(authorization)的行业标准协议。OAuth 2.0 专注于客户端开发人员的简单性&#xff0c;同时为 Web 应用程序、桌面应用程序、移动设备应用等提供了特定的授权流程。它在2012年取代了 OAuth 1.0, 并且 OAuth 2.0 协议不…

SQL 分页查询语句大全即(查找第N到M条记录的方法)

SQL 分页查询语句大全即&#xff08;查找第N到M条记录的方法&#xff09; 第一种方法&#xff0c;我的原创方法 row2 表示分页行数 page1 表示页码 getnumrow*page select * from (select top row * from (select top getnum * from Newslist order by id desc) order by id …

揭开不一样的世界,这5部纪录片绝对不能错过!

纪录片一直都是增长见识又带给你力量的东西&#xff0c;你可能忙于学业、生活、工作而不能行万里路&#xff0c;但至少你还可以看纪录片&#xff0c;从一方屏幕看到整个世界。今天就为大家整理了5部高分纪录片&#xff0c;文末附领取方式&#xff0c;快收下吧~01与摩根弗里曼一…

算术几何平均matlab,算术-几何平均数——高斯的发现

“算术-几何平均数”既不是算术平均数&#xff0c;也不是几何平均数&#xff0c;由素有“数学王子”之称的德国数学家高斯首先发现和研究。算术-几何平均数&#xff0c;当然与“算术平均数”和“几何平均数”这两个概念有很深的关系。我们知道&#xff0c;但凡一个数学概念或定…

.NET Core TLS 协议指定被我钻了空子~~~

【导读】此前&#xff0c;测试小伙伴通过工具扫描&#xff0c;平台TLS SSL协议支持TLS v1.1&#xff0c;这不安全&#xff0c;TLS SSL协议至少是v1.2以上才行&#xff0c;想到我们早已将其协议仅支持v1.3&#xff0c;那应该非我们平台问题。近日&#xff0c;第三方合作伙伴再次…

Android之CheckBox复选框控件使用inelayout.xml Xml代码

linelayout.xml Xml代码<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" android:layout_width"match_parent" android:layout_height&quo…

frame buffer编程--画点功能和新增字符串代替RGBT

&#xff08;一&#xff09;&#xff1a;写在前面 这一次进行了一个比较大的迭代&#xff0c;在这里我先把相对于上一个版本的改进做一个解释&#xff1a; 1:进一步完善画点&#xff0c;增加了使用字符串代替RGBT值2:实现字符串解析出RGBT值3:增加了画圆的算法4:进一步增强了代…

这篇博士毕业论文致谢句句诛心......

全世界只有3.14 % 的人关注了爆炸吧知识本文来源&#xff1a;学术志综合自小木虫、网络等&#xff0c;作者yechm AUT博士毕业论文感谢信&#xff1a;我出生的时候是一个下雪的深夜&#xff0c;我的父亲在床边生了一堆柴火&#xff0c;我的母亲躺在四周漏风的那间破屋角落的床上…

30分钟通过Kong实现.NET网关

什么是KongOpenrestry是一个基于Nginx与Lua的高性能平台&#xff0c;内部有大量的Lua库。其中ngx_lua_moudule使开发人员能使用Lua脚本调用Nginx模块。Kong是一个Openrestry程序&#xff0c;而Openrestry运行在Nginx上&#xff0c;用Lua扩展了nginx。所以可以认为Kong Openres…

Proxy模式简介和用例

在软件系统中&#xff0c;有些对象有时候由于某些原因&#xff08;比如对象创建开销很大&#xff0c;或者某些操作需要安全控制&#xff0c;或者需要进程外的访问&#xff09;&#xff0c;如果直接访问会给使用者或者系统结构带来很多麻烦&#xff0c;这时可以在客户程序和目标…

这个小姐姐真的很火辣......

1 穿着十分火辣的美女...▼2 你还有理了&#xff1f;▼3 学生&#xff1a;我们要把老师照片挂墙上&#xff01;▼4 喜悦中带着阵阵悲伤...▼5 你瞅啥&#xff1f;瞅你咋地&#xff01;▼6 一时竟没发现哪里不对▼7 老板&#xff0c;我们KTV最漂亮的都在这了▼你点的每个赞…

RPC调用框架比较分析

什么是RPC&#xff1a; RPC&#xff08;Remote Procedure Call Protocol&#xff09;——远程过程调用协议&#xff0c;它是一种通过网络从远程计算机程序上请求服务&#xff0c;而不需要了解底层网络技术的协议。 简言之&#xff0c;RPC使得程序能够像访问本地系统资源一样&am…

VS扩展CodeMaid代码整理插件

CodeMaid是Visual Studio的开源扩展&#xff0c;用于清理和简化我们的C&#xff03;&#xff0c;C &#xff0c;F&#xff03;&#xff0c;VB&#xff0c;PHP&#xff0c;PowerShell&#xff0c;JSON&#xff0c;XAML&#xff0c;XML&#xff0c;ASP&#xff0c;HTML&#xff0…