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的所有优点.在这一系 ...
随机推荐
- letcode-Z字抖动
题目 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下 ...
- 使用Xilinx MIG验证硬件DDR设计
1 导读 MIG 是xilinx的memory控制器,功能强大,接口易用.当硬件设计在设计对应的DDR接口时,最好先用MIG去配置一遍DDR的管脚约束.电平约束,从而避免硬件设计好了,实际却无 ...
- Centos系统下,各种服务重启
1.sudo systemctl start firewalld 2../redis-server /usr/local/bin/redis.conf 3.mongod -f /etc/mongod ...
- 【Azure 事件中心】Event Hubs如何获取其中存放的历史消息
问题描述 使用Azure Event Hub服务,除了正常的生产,消费消息以外,如果想拿到Event Hub中存储的历史消息?有什么方法呢? 问题解答 获取 Event Hubs 存储的历史消息,首先 ...
- 【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
问题描述 使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢? Microsoft Antimalware for Azure is ...
- (转载)Transfer-Encoding:chunked详解
原文链接:Transfer-Encoding:chunked详解_transfer-encoding: chunked_公众号:流花鬼的博客-CSDN博客 概念 分块传输编码(Chunked tran ...
- MyBatis的Example类详解
Example类的定义? 第一次幕课网教程看到关于这方面教时,没有懂example起什么用,感觉不用example也可以查询了,后来认真一看才知道这是查询条件生成器 mybatis-generator ...
- 案例7:将"picK"译成密码
密码规则:用当前字母后面的第五各字符来代替当前字符.比如字符'a'后面的第5个字符为'f', 则使用'f'代替'a'.编写程序,实现该功能. 示例代码如下: #define _CRT_SECURE_N ...
- Vue 动态插入组件 用js函数的方式
Vue 动态插入组件 用js函数的方式 第一步 import vue组件 第二步 Vue把组件扩展进去 第三步 创建实例 第四步 将组件的el挂载到document.body上 第五步 设置组件内部d ...
- RaspberryPi 树莓派 omxplayer 的音量设置方法实测有效!
正确的设置初始音量的方法,其中n/100=你期望的初始dB值, omxplayer --vol n target.media omxplayer介绍 omxplayer 在github中的描述是一个弃 ...
