当前位置:网站首页 > Python后端开发 > 正文

Baas接口标准(三)——GraphQL客户端开发之基本查询、添加操作名称、使用查询参数之变量、指令、别名、通过mutation关键字实现变更操作

Baas接口标准(三)——GraphQL客户端开发之基本查询、添加操作名称、使用查询参数之变量、指令、别名、通过mutation关键字实现变更操作

第4章 GraphQL客户端开发

基本查询

按需获取需要的数据

// 查询hero对象的name属性 { hero { name } } 
// 查结果 { "data": { "hero": { "name": "lisi" } } } 
  • 注意事项
    • GraphQL只有一个URL地址,客户端查询的所有信息都通过该地址获取数据
    • 可以更加需要按照实际的需求获取特定的数据

操作名称

有多个操作时,操作名称是必须的,为了调试的方便,推荐添加操作名

  • 规则:操作类型 操作名称(操作名称自定义)
  • 操作类型主要有如下两种
    • query 用于查询
    • mutation 用于变更操作(添加、修改、删除)
# 查询名称 query helloInfo { hello } 
# 变更名称 mutation addUser { addUser(userInput: { uname: "lisi", pwd: "123" }) { id username } } 
  • 注意事项
    • 推荐所有的查询和变更操作添加操作名称

查询参数

有时候需要根据特定的条件查询数据,此时可以使用查询参数

// 查询id是1,姓名是lisi的学生信息 query param { stu(id: 1, sname: "lisi") { sname age gender } } 
// 查询结果 { "data": { "stu": { "sname": "lisi", "age": 12, "gender": true } } } 
  • 注意事项
    • 查询字段可以携带参数,并且可以携带多个参数,参数之间通过逗号隔开

变量

有时字段的参数需要动态提供,而不是固定的值,此时可以使用变量,其实类似于函数中的形参

# $id: Int (变量名称: 变量类型) query param($id: Int, $num: Float) { stu(id: $id) { id sname scores(num: $num) { cname score } } } // 分离的变量字典 { "id": 1, "num": 99 } 
  • 注意事项
    • 变量类型必须是标量、枚举型或者输入对象类型
    • 变量可以有默认值 ($id: Int = 1)

指令

有时候查询的字段数量不是固定的,此时可以通过指令的方式进行控制

  • 两个指令
    • @include(if: Boolean) 仅在参数为 true 时,包含此字段。
    • @skip(if: Boolean) 如果参数为 true,跳过此字段。
query param($id: Int, $gender: Boolean!) { stu(id: $id) { id sname gender @include(if: $gender) } } 
query param($id: Int, $gender: Boolean!) { stu(id: $id) { id sname gender @skip(if: $gender) } } 
  • 注意事项
    • 可以通过这两个指令动态控制查询的字段数量
    • 指令用到的变量定义时需要添加!,强制必须提供该值

别名

有时需要通过不同参数值查询相同字段信息,比如查询学生的数学和英语成绩

query alias { 
    stu { 
    id sname math: scores(cname: "数学") { 
    cname score }, english: scores(cname: "英语") { 
    cname score } } } // 上面的查询结果如下 { 
    "data": { 
    "stu": { 
    "id": 1, "sname": "张三", "math": [ { 
    "cname": "数学", "score": 98.5 } ], "english": [ { 
    "cname": "英语", "score": 99.5 } ] } } } 
  • 注意事项
    • 可以通过别名的方式获取特定某几项数据(查询结果的数据格式相同)

变更

改变服务器数据需要用到【变更】(mutation)操作

# 通过具体值方式传递参数 mutation addUserByParam { addUserByParam(uname: "lisi", pwd:"abc") { id uname pwd } } 
# 通过变量方式传递参数 mutation addUserByInput($userInput: UserInput) { addUserByInput(userInput: $userInput) { id uname pwd } } 
# 参数传递 { "userInput": { "uname": "lisi", "pwd": "123" } } 
  • 注意事项
    • 通过mutation关键字实现变更操作
    • userInput变量并非标量,而是一个输入类型
    • 参数的传递可以通过普通参数,也可以使用输入类型,一般较为复杂的数据采用输入类型
到此这篇Baas接口标准(三)——GraphQL客户端开发之基本查询、添加操作名称、使用查询参数之变量、指令、别名、通过mutation关键字实现变更操作的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Python后端开发岗学习路线是什么_python后端开发项目2024-12-03 13:18:10
  • Python后端开发基础教程_python 后端开发2024-12-03 13:18:10
  • python后端开发学习内容有哪些?_python后端开发项目2024-12-03 13:18:10
  • python后端开发web_WEB开发系列3:一步步打造强大的Python后端开发环境_python后端开发项目2024-12-03 13:18:10
  • Python后端开发需要哪些知识_python后端开发要求2024-12-03 13:18:10
  • vscode配置python开发环境并安装opencv(vscode怎么配置python运行环境)2024-12-03 13:18:10
  • vscode配置python开发环境视频(vscode怎么用python环境)2024-12-03 13:18:10
  • vscode配置python开发环境 -csdn(vs code python配置)2024-12-03 13:18:10
  • vscode配置python开发环境 -csdn(vscode python配置文件)2024-12-03 13:18:10
  • vscode配置python开发环境后为什么运行不了c(vscode配置python开发环境视频)2024-12-03 13:18:10
  • 全屏图片