上一篇文章:https://www.cnblogs.com/cgzl/p/9734083.html

处理数据

嵌套字段

看例子:

我想查看viewer下的repositories。注意里面的edges,一旦看到这个词,通常就表示有连接到某个数组的数据。在这里就是一个集合的repository。

edges里面的node代表viewer列表里不同的repository。

查询报错了,因为这里需要多repositories有个翻页的动作,所以需要first或last参数。

添加first参数以后就可以看到正确的结果了:

把参数换成last也可以,我就不试了。

连接 Connection

查看Docs,可以看到viewer下repositories的返回类型是RepositoryConnection:

再点击进去:

可以看到RepositoryConnection下面的edges是一个RepositoryEdge的列表。

继续点击进去,可以看到RepositoryEdge下面的node就是一个Repository:

把上面的关系用图来表示就是:

多重嵌套字段

直接看例子就行:

翻页

之前的例子使用了first或last参数进行翻页,但除此之外还有很多种方式可以用来翻页。

具体如何翻页,还要看您如何在schema中定义。

下面再看一个例子:

查看文档,可以看到issues所有的参数定义:

它们都是用来过滤数据和进行翻页的。

为查询起名

之前的例子我们大多把query关键字忽略了,而完整的写法应该是:

query就像是查询的名称,但是如果都叫query就不好区分了,所以我们可以为查询起名,就在query后边加上名字即可:

这样这个查询既让人明白又可以复用。查询的结果还是一样的。

查询变量

之前例子的参数值都是写死的,我们可以在查询的名称后边加上参数变量,使用$+名称表示变量,然后将变量传递给相应的字段。而变量的值可以在左下角的窗口里设定:

这个查询结果还是一样的。

变化 Mutation

之前的例子都是查询数据。下面讲讲如何修改数据。

修改数据就需要用到 mutation

Mutation的特点如下:

  • 和REST里的POST,PUT和DELETE相似。
  • Mutation里使用payload发送数据。
  • GraphQL修改schema背后的数据集。
  • API定义了哪些mutation是允许的。

下面看例子,我要为一个Repository的Issue添加评论,首先查询,获得一个Issue的id:

然后做mutation:

这里使用mutation关键字,随后跟着mutation的名字和参数变量。该参数变量的类型是AddCommentInput,是一个定义好的对象。

addComment这个操作里面定义的字段是要在mutation成功后返回的字段。

然后在左下方设定好参数,执行操作即可。

右侧是返回的结果。

我们再反查一遍,看看是否添加了新的评论:

我点击了两次,所以新增加了两个评论。

好吧简介就写到这吧,尽管很不完整。

下篇开始实战。

使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下)的更多相关文章

  1. 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上)

    为了介绍使用ASP.NET Core构建GraphQL服务器,本文需要介绍一下GraphQL,其实看官网的文档就行. 什么是GraphQL? GraphQL 既是一种用于 API 的查询语言也是一个满 ...

  2. 【视频】使用ASP.NET Core开发GraphQL服务

    GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL来自Facebook,它于2012年开始开发,2015年开源. GraphQL与编程语言无关,可以使用很 ...

  3. ASP.NET Core 开发-中间件(StaticFiles)使用

    ASP.NET Core 开发,中间件(StaticFiles)的使用,我们开发一款简易的静态文件服务器. 告别需要使用文件,又需要安装一个web服务器.现在随时随地打开程序即可使用,跨平台,方便快捷 ...

  4. 使用ASP.NET Core支持GraphQL -- 较为原始的方法

    GraphQL简介 下面是GraphQL的定义: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述 ...

  5. ASP.Net Core开发(踩坑)指南

    ASP.NET与ASP.NET Core很类似,但它们之间存在一些细微区别以及ASP.NET Core中新增特性的使用方法,在此之前也写过一篇简单的对比文章ASP.NET MVC应用迁移到ASP.NE ...

  6. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

  7. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  8. 使用ASP.NET Core支持GraphQL( restful 配套)

    https://github.com/graphql-dotnet https://github.com/graphql GraphQL简介 官网:https://graphql.cn/code/ 下 ...

  9. [ASP.NET Core开发实战]开篇词

    前言 本系列课程文章主要是学习官方文档,再输出自己学习心得,希望对你有所帮助. 课程大纲 本系列课程主要分为三个部分:基础篇.实战篇和部署篇. 希望通过本系列课程,能让大家初步掌握使用ASP.NET ...

随机推荐

  1. Zepto源码(2016)——Zepto模块(核心模块)

    // Zepto.js // (c) 2010-2016 Thomas Fuchs // Zepto.js may be freely distributed under the MIT licens ...

  2. 玩转spring MVC(七)----拦截器

    继续在前边的基础上来学习spring MVC中拦截器的使用,下面通过一个例子来实现(完整项目在这里下载:http://download.csdn.net/detail/u012116457/84334 ...

  3. vs插件-基于TFS的源码记录可视化

    插件地址:https://marketplace.visualstudio.com/items?itemName=AlexandrBiryukov.TFSSourceControlHistoryVis ...

  4. java中读取配置文件ResourceBundle和Properties两种方式比较

    今天在开发的时候,需要把一些信息放到配置文件中,方便后续的修改,注意到用的是ResourceBundle读取配置文件的方式,记得之前也见过使用Properties的方式,就比较好奇这两种方式的区别,网 ...

  5. HEOI2018——welcome to NOI2018

    我不得不和烈士和小丑走在同一道路上,  万人都要将火熄灭,  我一人独将此火高高举起,  我借此火得度一生的茫茫黑夜. ——海子 弹指一瞬间,翘首以盼的HEOI2018就来了. 我,一个滑稽的小丑,带 ...

  6. 【bzoj2331】[SCOI2011]地板

    题目链接: TP 题解: 分类讨论好烦啊! 0表示没有插头,1.2表示有插头,1表示接下来可以转弯,2表示接下来不能转弯,只能停在一个地方. 然后分类讨论: 插头状态 到达状态 0 0 2 2 | 1 ...

  7. BZOJ_4530_[Bjoi2014]大融合_LCT

    BZOJ_4530_[Bjoi2014]大融合_LCT Description 小强要在N个孤立的星球上建立起一套通信系统.这套通信系统就是连接N个点的一个树. 这个树的边是一条一条添加上去的.在某个 ...

  8. BZOJ_1391_[Ceoi2008]order_最大权闭合子图

    BZOJ_1391_[Ceoi2008]order_最大权闭合子图 Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可 ...

  9. resteasy简单实例

    1.建一个maven web项目 新建一个maven项目,next,第一个框不要勾选 选择maven-archetype-webapp,建一个web项目 键入项目组织id与项目id 一般此时搭建的只是 ...

  10. 防XXS和SQL注入

    对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlsp ...