GraphQL:来来来,Union

Union就是把不相干的一些数据实体,合并起来,一起供外部查询。不用像webapi,完成查询不同的数据,需要多次请求。一次请求,获取多样数据,减少请求次数,这也是GraphQL的优势之一。怎么弄,来来来,代码看过来:

using HotChocolate;
using HotChocolate.Execution;
using HotChocolate.Types;
using System;namespace GraphQLBase006
{class Program{static void Main(string[] args){UnionDemo.Run();}}public class UnionDemo{public static void Run(){var schema = SchemaBuilder.New().AddQueryType<Query>().AddType<Car>().AddType<Cabbage>().AddType<Earth>().AddProjections().Create();var executor = schema.MakeExecutable();Console.WriteLine(executor.Execute(@"
{formats{__typename,... on Car{brand,price},... on Cabbage{name,nutrition}... on Earth{diameter        }} 
}").ToJson());}}public class Query{public IUnion[] GetFormats(){return new IUnion[]{new Car{Brand="Benz",Price=1000000},new Cabbage{Name="灰子白",Nutrition="纤维"},                 new Earth{Diameter=12742}};}}[UnionType("Unio")]public interface IUnion{}public class Car : IUnion{public string Brand { get; set; }public decimal Price { get; set; }}public class Cabbage : IUnion{public string Name { get; set; }public string Nutrition { get; set; }}public class Earth : IUnion{public double Diameter { get; set; }   }
}

案例中就是把不相干的Car,Cabbage,Earth,通过继承一个空接口合并起来,供外部访问,通过自定义查询接口语句,达到灵活取想要的数据,比如一些数据字典的查询就很有用,不相干的一些配置,同时获取到,以备后用。

结果:

{"data": {"formats": [{"__typename": "Car","brand": "Benz","price": 1000000},{"__typename": "Cabbage","name": "\u7070\u5B50\u767D","nutrition": "\u7EA4\u7EF4"},{"__typename": "Earth","diameter": 12742}]}
}

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

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

相关文章

每个程序员都应该知道的基础数论

这篇文章讨论了数论中每个程序员都应该知道的几个重要概念。本文的内容既不是对数论的入门介绍&#xff0c;也不是针对数论中任何特定算法的讨论&#xff0c;而只是想要做为数论的一篇参考。如果读者想要获取关于数论的更多细节&#xff0c;文中也提供了一些外部的参考文献&…

powerbi视觉对象_玩转Power BI的图片可视化

​制作可视化报告时&#xff0c;为了展示效果&#xff0c;有时候需要用图片来展示&#xff0c;在 Power BI 中&#xff0c;关于图片的自定义视觉对象主要有下面三个&#xff0c;利用他们可以很轻松的进行图片可视化。下面来看看这些视觉对象的效果。样本数据如下&#xff1a;为…

东南大学计算机网络_东南大学,2020年东南大学高考录取分数线分析

各位读者大家好&#xff0c;今天给大家介绍的是南京重点大学—东南大学。小编一直从事高等教育领域的写作&#xff0c;感兴趣的读者可以关注一下小编~1.学校基础东南大学&#xff0c;简称“东大”&#xff0c;是中华人民共和国教育部直属、中央直管副部级建制的全国重点大学&am…

Goodbye 2020,Welcome 2021 | 沉淀 2021

引言2021年&#xff0c;已开启二月的篇章&#xff0c;农历新年也张灯结彩而来&#xff0c;只不过要留守过年。在这辞旧迎新之际&#xff0c;踏入而立之年之时&#xff0c;正是算账的好时候&#xff0c;数一数今年的成长&#xff0c;讲一讲来年的期望&#xff0c;最重要的还是要…

程序员必须知道的十大基础实用算法及其讲解

本文盘点程序员必须知道的十大基础实用算法及其讲解。 算法一&#xff1a;快速排序算法 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下&#xff0c;排序 n 个项目要Ο(nlogn) 次比较。在最坏状况下则需要Ο(n2) 次比较&#xff0c;但这种状况并不常见。事实上&#…

sql 日期和当前日期时间差_详解PostgreSQL 如何获取当前日期时间

概述开发数据库应用或者调试代码时&#xff0c;经常需要获取系统的当前日期和时间&#xff0c;今天主要看一下 PostgreSQL 中提供的相关函数。一、当前日期CURRENT_DATECURRENT_DATE 函数用于获取数据库服务器的当前日期&#xff1a;postgres# SELECT CURRENT_DATE;调用该函数时…

我们只知大势将至,却不知未来已来

❈ 凯文•凯利 《必然》&#xff1a; 未来的一切事物的生命都将是无穷尽的升级&#xff0c;而且迭代的速度不断的在加速。包括看得见的事物&#xff0c;也包括看不见的审美观和价值观。无论你使用一项工具的时间有多长&#xff0c;不断的升级都会把你变成一个菜鸟&#xff0c;从…

c#爬虫-1688官网自动登录

背景在1688官网里面有很多信息是需要登录才能看得到的&#xff0c;比如商家的联系电话等等。那么我们在抓取它的网页的时候&#xff0c;肯定是需要维持登录状态才能得到对应的内容。这里面就会涉及到自动登录的问题。登录地址https://login.1688.com/member/signin.htm自动登录…

tensorrt轻松部署高性能dnn推理_部署环境之:tensorRT的插件

TensorRT是一个高性能的深度学习推理&#xff08;Inference&#xff09;优化器&#xff0c;可以为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可用于对超大规模数据中心、嵌入式平台或自动驾驶平台进行推理加速。TensorRT现已能支持TensorFlow、Caffe、Mxnet、Pytor…

做一个网站多少钱?

「一辆车子多少钱&#xff1f;一个房子多少钱&#xff1f;」 这问题在工程师或设计师的眼里就如「一辆车子多少钱&#xff1f;一个房子多少钱&#xff1f;」,这个问题实在空泛到一个让人无法言语的境界&#xff0c;这也是我最常被问到的问题「做一个网站多少钱&#xff1f;」。…

[Abp 源码分析]多租户体系与权限验证

点击上方蓝字关注我们0.简介承接上篇文章我们会在这篇文章详细解说一下 Abp 是如何结合 IPermissionChecker 与 IFeatureChecker 来实现一个完整的多租户系统的权限校验的。1.多租户的概念多租户系统又被称之为 Saas &#xff0c;比如阿里云就是一个典型的多租户系统&#xff0…

生存是一种毅力

三月初回到成都,出站时还是凌晨5点多,第一次这么早站在成都的火车站,拥挤的人群和车辆,我的神志却异常的清醒,坚持不要母亲来接我. 到家洗漱后到头就睡,一觉醒来10点多,中午的成都虽不像北京那么阳光普照但也感觉暖暖的.想起在北京训练营的日子,"枯藤老树昏鸦"每天伴…

linux truncate文件,linux系统编程:用truncate调整文件大小

truncate的使用非常简单&#xff1a;int truncate(const char *path, off_t length);参数1&#xff1a;文件名参数2: 文件需要被调整的大小length 大于 文件大小&#xff0c; 文件后面会填充空白字节或者空洞length 小于 文件大小&#xff0c; 文件多出的部分&#xff0c;会被…

如何在 ASP.Net Core 中使用 SignalR

SignalR for ASP.Net Core 是 SignalR 的浴火重生版&#xff0c;允许你在 ASP.Net Core 中实现实时通讯&#xff0c;这里的 实时 意味着双方都能快速的感知对方发来的消息&#xff0c;比如&#xff1a;一旦 server 端有需要推送的内容将会直接 push 到 client&#xff0c;这和原…

搞笑动图:这些痛,只有程序员懂…

“代码上线后又追加了新特性” “在生产环境做 hotfix” “刚调稳定的系统&#xff0c;公司叕空降了一位架构师&#xff0c;叕要重构现有系统…… ” “当程序员听客户说还在用 IE 时” “当黑客拿到 root 权限之后” “代码进入循环分支后” “项目交接&#xff0c;客户要求开…

linux内核分为子系统,Linux内核内存管理子系统分析【转】

还是那张熟悉的老图&#xff1a;Linux内核子系统简介(由七个部分组成)Linux内存管理模型&#xff1a;1. 内存管子系统职能&#xff1a;1> 管理虚拟地址与物理地址的映射2> 管理物理内存的分配2. 地址映射管理1> 虚拟地址空间分布&#xff1a;linux采用的是一种虚拟地…

spss22.0统计分析从入门到精通_数据分析最全资料:SPSS/MATLAB/SQL/SAS/EXCEL经典教材+视频教程,快速入门!...

可以说当今社会数据就是力量。数据分析能力已经成为各个行业必备的技能&#xff0c;如果能熟练掌握数据分析技能&#xff0c;不管是留学申请还是以后的就业&#xff0c;都会是一个很大的加分项。但是目前国内很少有高校专门开设数据分析课程&#xff0c;想要掌握技能大部分要靠…

可反复擦写5万次的手写板,竟然还能用橡皮擦能清除屏幕!

作为一名文艺青年&#xff0c;平时写字画画是我的一大爱好。 心情不错&#xff0c;来个创作&#xff01; 还记得我们之前介绍过的Boogie Board电子手写板吗&#xff1f; 小木用的就是它。 虽然好用&#xff0c;只不过有时候不小心画错了&#xff0c;只能重新来。 伤心啊…… 不…

[Abp 源码分析]权限验证

点击上方蓝字关注我们0.简介Abp 本身集成了一套权限验证体系&#xff0c;通过 ASP.NET Core 的过滤器与 Castle 的拦截器进行拦截请求&#xff0c;并进行权限验证。在 Abp 框架内部&#xff0c;权限分为两块&#xff0c;一个是功能(Feature)&#xff0c;一个是权限项(Permissio…

cocoscreator editbox 只允许数字_《Cocos Creator游戏实战》做一个数字调节框

当玩家购买道具的时候&#xff0c;一个个买可能会比较麻烦&#xff0c;用数字调节框的话玩家一次性就可以买好几十个了(钱够的话)。运行效果如下&#xff1a;Cocos Creator版本&#xff1a;2.2.0公号"All Codes"后台回复"数字调节框"&#xff0c;获取该项目…