上一篇文章: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. javascript执行上的一点总结

    今天在为软件工程的的作业准备的时候发现代码执行上的一些问题,暴露了我的一些缺陷,先上代码 <html> <head> <script type="text/ja ...

  2. Andoird 自定义ViewGroup实现竖向引导界面

    转载请表明出处:http://write.blog.csdn.net/postedit/23692439 一般进入APP都有欢迎界面,基本都是水平滚动的,今天和大家分享一个垂直滚动的例子. 先来看看效 ...

  3. 关于 行高lineheight的概念及与Vertical-align、内容框、基线等的关系

    1.关于行高 行高:顾名思意指一行文字的高度.具体来说是指两行文字间基线之间的距离,他也是底线和顶线之间距离   (1)内容区

  4. 高德地图 地铁图adcode 城市代码

    北京 1100天津 1200石家庄 1301沈阳 2101大连 2102长春 2201哈尔滨 2301上海 3100南京 3201无锡 3202苏州 3205杭州 3301宁波 3302合肥 3401 ...

  5. java正则使用方法

    import java.util.regex.Matcher;import java.util.regex.Pattern; public class RegexMatches{    public ...

  6. BZOJ_3514_Codechef MARCH14 GERALD07加强版_主席树+LCT

    BZOJ_3514_Codechef MARCH14 GERALD07加强版_主席树+LCT Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. I ...

  7. 使用Freemarker 实现JSP页面的静态化

    使用Freemarker 静态化网页 一.原理 Freemarker 生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达 ...

  8. 【爆料】-《南昆士兰大学毕业证书》USQ一模一样原件

    ☞南昆士兰大学毕业证书[微/Q:2544033233◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归 ...

  9. SASS 中变量的默认值

    SASS 中定义的变量,后设置的值会覆盖旧的值. $color: red; $color: blue; .btn { color: $color; } 编译后为: .btn { color: blue ...

  10. C# - 为引用类型重定义相等性

    通常情况下引用类型的相等性是不应该被重定义/重写的. 例如两个引用类型的变量 x 和 y,如果这样写:if(x == y) {...},那么大家都明白,这个比较的是引用的相等性. 但是有少数情况下,也 ...