GraphQl in ASP.NET Core

GraphQl in ASP.NET Core
https://graphql.cn/
https://graphql-dotnet.github.io/docs/getting-started/arguments/
1. GraphQl的简介
2.Shecmas and Types(数据类型 对比 .NET介绍)
3.使用: Query(查询) & Mutation(增加 修改 删除)& Subscriptions(订阅)(项目演示)
4.使用ASP.NET Core 构建GraphQl.Server (项目演示)
5.Postman Ajax 以及 Vue的调用演示
1.什么是GraphQl?

通常也会被称作是 ”声明式查询语言”
GraphQl 和 REST 比较
RESTful的一些不足 1.就是过度提取或提取不足 2.某个前端的实现需要多个独立的RESTful api才能获取足够的信息
GraphQL的一些优点 1.GraphQL最小化了需要网络传输的数据量(所输即所得)。
2.使用GraphQL每个客户机都可以精确地访问它需要的数据。
3.代码即文档
4.参数类型强检验(确保安全)
5.统一入口 也就没了 APi后台接口版本迭代的的问题。(也是没了 Api for V1....V2...V3.....)
GraphQL还是存在一些缺点的(比如 缓存方面就没有 RESTful优势) GraphQL作为RESTful的一种辅助工具,尤其是针对前端App在复杂页面,
本来要调用有上下文关系的多次RESTful请求时,采用GraphQL,只需要一次请求,就可以拿回所需的全部数据,还是可以起到非常好的效果,
大大提升App的性能。
2.GraphQl例子
演示地址:https://developer.github.com/v4/explorer/
1.多个查询
2.嵌套查询演示
query {
viewer {
login
repositories(last:1){
edges{
node{
id
name
}
}
}
}
}
2.1说明查询是可以嵌套的,一次请求,获取多个 类型数据,无需继续钻取数据
2.2同时客户端也不会收到,不需要数据的影响
GraphQl设计原则
1. 层次结构性(可以分层,嵌套查询的例子,查询和返回是一致的)
2. 以产品为中心(就是有所需要的数据所驱动)
3. 强类型(每个数据点 都会有特定的类型)
4. 客户端定制查询(需要哪些属性,查询哪些属性)
GraphQl历史
1. 源自Facebook
2. 2012年Facebook开始开发
3. 2015年开源
GraphQl谁在使用
1. Facebook
2. GitHub api V4
3. Paypal ...........等
GraphQl 强类型 .NET 类型
使用ASP.NET Core 构建GraphQL
.Net服务端文档地址 https://graphql-dotnet.github.io/docs/getting-started/installation
相关库:
1. GraphQL
2.GraphQl.Server.Transports.AspNetCore
3.GraphQl.Server.Transports.WebSockets UI:(用于浏览器) GraphQl.Server.Ui.Playground(可选 *) GraphQl.Server.Ui.Voyager(可选) GraphQl.Server.Ui.GraphQl(可选)
IOC、DI、DIP IOC容器相当于一个工厂,负责创建对象的 IOC控制反转:只是把上端对下端的依赖,换成第三方容器决定 DI依赖注入:(全称是...)就是在构造某个对象时,能将对象依赖的东西自动的初始化进去正是因为要实现IOC,所以才诞生了DI的技术手段 DIP(依赖倒置原则)就是上层模块不应该依赖底层模块,它们都应该依赖于抽象,具体点是Service不应该依赖于Repository(仓储层),而应该依赖于IRepository Dl 再有 构造函数的时候 会内部优先 然后再是外面(*)
1.new 运算符 用于创建对象和调用构造函数。
2.new 修饰符 用于向基类成员隐藏继承成员。
3.new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。
ES6的展开 运算符
https://mingjiezhang.github.io/2016/09/24/ECMAScript-6%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%EF%BC%88%E4%B8%80%EF%BC%89%EF%BC%9A%E5%B1%95%E5%BC%80%E8%BF%90%E7%AE%97%E7%AC%A6/
1. 类似 MVVM 2.AutoMapper 处理对象关系映射
3.大神推荐:
B站链接:https://space.bilibili.com/361469957?spm_id_from=333.788.b_765f7570696e666f.1
THANK YOU
GraphQl in ASP.NET Core的更多相关文章
- ASP.NET Core中使用GraphQL - 最终章 Data Loader
ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间 ...
- ASP.NET Core中使用GraphQL - 第七章 Mutation
ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间 ...
- ASP.NET Core中使用GraphQL - 第八章 在GraphQL中处理一对多关系
ASP.NET Core中使用GraphQL - 目录 ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间 ...
- ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)
GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...
- ASP.NET Core免费(视频)教程汇总
最近才开始学习ASP.NET Core,发现社区的学习资料很多,但是相关的视频教程不是很多,52ABP官方有两个视频教程,但是ABP框架比较臃肿,初学者学起来有点吃力,所以还是推荐大家先啃书或者官方文 ...
- 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core
百度地图和高德地图坐标系的互相转换 GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...
- ASP.NET Core Restful Web API 相关资源索引
GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...
- 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上)
为了介绍使用ASP.NET Core构建GraphQL服务器,本文需要介绍一下GraphQL,其实看官网的文档就行. 什么是GraphQL? GraphQL 既是一种用于 API 的查询语言也是一个满 ...
- 使用ASP.NET Core支持GraphQL -- 较为原始的方法
GraphQL简介 下面是GraphQL的定义: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述 ...
- ASP.NET Core中使用GraphQL - 第一章 Hello World
前言 你是否已经厌倦了REST风格的API? 让我们来聊一下GraphQL. GraphQL提供了一种声明式的方式从服务器拉取数据.你可以从GraphQL官网中了解到GraphQL的所有优点.在这一系 ...
随机推荐
- js常用知识点整理
说明:以下内容都是我工作中实际碰到的js知识点. 后面还会碰到其他知识点或对原来解决方案的改进,都会在本篇中持续不断的维护,希望给刚参加工作或初学的朋友一些参考. 1.给元素添加事件 $(" ...
- Direct2D CreateBitmap的使用
当需要设置位图的混合模式时,应该使用ID2D1DeviceContext而不是ID2D1RenderTarget. 代码如下: #define WIN32_LEAN_AND_MEAN #include ...
- CSS font-weight
主要理解UI给得英文名 对应得数值 字体粗细:'font-weight'属性名称: font-weight取值: normal | bold | bolder | lighter | 100 | 20 ...
- day02---虚拟机上网模式
修改虚拟网络编辑器 虚拟软件网络模式介绍 NAT网络模式 特点:虚拟主机和宿主机网络信息 可以不一致 优点:不容易出现局域网中IP地址冲突 缺点:其它宿主机不能直接访问虚拟机 桥接网络模式 特点:虚拟 ...
- day05---系统的重要文件(3)
1) /usr/local 编辑 安装的软件 第三方软件安装位置 软件安装的三种方法 1.yum安装 自动解决依赖问题 yum [选项参数] 包名 第一个里程碑:我想要安装的软件的名字 或者是 知道命 ...
- dotnet nuget的命令行上传(推送/发布)包到Nexus 3
1.让Visual Studio在生成的时候也生成NuGet的包 在项目上点右键,选"属性",然后设置生成的时候制作NuGet的包. 英文版在这里打勾: 中文版在这里打勾: 重新生 ...
- 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)
问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...
- 【应用服务 App Service】App Service For Linux 中如何挂载一个共享文件夹呢? Mount Azure Storage Account File Share
问题描述 使用Linux作为服务器运行Web App时,如何将 Storage Account 作为本地共享装载到 App Service for Linux / Container 中的应用呢? ...
- kotlin协程小记
转载请标明出处:https://www.cnblogs.com/tangZH/p/16849169.html -[kotlin协程小记]-[协程的async使用]- [kotlin协程异常处理之-tr ...
- 2.UML类图基本介绍
1. UML 基本介绍 UML--Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 U ...
