ApolloAndroid 使用笔记

news2024/12/23 7:16:01

由于业务需求的变化,需要使用 Graphql 作为客户端与服务端的交互查询框架,特此记录使用。

测试代码下载链接

一、导入引用以及规则示例

1、首先需要在我们需要使用的模块下面创建对应的src/main/graphql文件夹

2、将后台对应的服务生成的 xxx.graphqls 文件复制到该文件夹下, 此文件是后台服务生成的

3、配置模块下的依赖

其中有三处需要注意的地方

(1)在 plugins 中引用 (版本号根据实际使用调整)

id("com.apollographql.apollo3").version("3.8.0")

(2)dependencies 导入对应的库

implementation "com.apollographql.apollo3:apollo-runtime:3.8.0"

    (3) 配置后续生成的文件的目录信息

apollo {
    service("service") {
        packageName.set("com.apollo.graphql")
    }
}

其中packageName.set("xxxxxxx") 要与src/main/graphql文件夹下创建的文件夹名称相同,如图

4、此时rebuild项目 ,可以在 对应模块下面的 build/generated/source/apollo下面看到生成的文件

二、查询编辑

接下来可以根据 schema.graphqls 中的内容编写对应的查询语句等(如果后台在开发过程中使用了相关的功能,也可以问后台服务开发相关人员要),

1、在 packageName.set("xxxxxxx") 中 xxxx 对应的目录下创建 ***.graphql 文件,如下图

2、编写相关示例

schema.graphqls 对应的一个类型是查询(Query) 的 查询方法(queryEvents),查询的是 Event对象列表的事件

根据官方的文档介绍(百度搜),编写的查询语句如下

query Query{
    queryEvents {
        id
        title
        description
    }
}

其中 id title description 均是Event中的数据,可根据需要进行返回设置。

也可以编辑如下  

全部数据都有:query Query{ queryEvents { id title description price date}}

部分数据(按需): query Query{ queryEvents { id title price }}

下图示例

文件的命名 QueryEvent.graphql 是要后缀是 .graphql 即可 

重新rebuild后可以查看生成的文件

三、在代码中引用查询

示例如下,不分解说明

注意Query的目录,与我们设置的相同

四、补充说明

1、代码中有关于 Mutation 的定义

type Mutation {
    createEvent(eventInput: EventInput!): Event!
}

相关的语句编辑如下

mutation MutationEvent($input: EventInput!) {
    createEvent(eventInput: $input) { id title }
}

生成的数据结构如下

测试代码如下

2、android studio 别忘了引用对应的插件

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

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

相关文章

1个Xpath定位可以在Web页面查找到多个元素Selenium

1个Xpath定位可以在Web页面查找到多个元素Selenium//input[id\"transactionId\"] 打开Web页面, 点击F12可以看到压面 点击Ctrl F 可以点图如下图的输入框,输入xpath,看右侧可以找到3个对应的元素 点击Ctrl F 点击Ctrl F 点…

【C语言】逗号运算符详解 - 《不起眼的 “逗号”》

目录 C语言逗号运算符详解1. 逗号运算符的定义1.1 基本语法1.2 执行顺序 2. 逗号运算符的用法2.1 用于循环2.1.1 示例 2.2 用于表达式组合2.2.1 示例 3. 逗号运算符的应用场景3.1 宏定义3.1.1 示例 3.2 条件运算符中的应用3.2.1 示例 4. 总结5. 参考文献6. 结束语 C语言逗号运算…

通信网络机房服务器搬迁流程方案

数据中心机房搬迁是一项负责高难度的工程。整个搬迁过程充满挑战,伴随着各种风险。如何顺利的完成服务器的迁移,需要专业的数据中心服务商全程提供保障。友力科技(广州)有限公司,作为华南地区主流的数据中心服务商&…

Python代码,强化学习,深度学习

python代码编写,Python算法设计,强化学习优化,改进模型,训练模型,测试模型,可视化绘制,代编运行结果,交互多模型改进,预测模型,算法修改,Python包…

docker: No space left on device处理与迁移目录

简介:工作中当遇到Docker容器内部的磁盘空间已满。可能的原因包括日志文件过大、临时文件过多或者是Docker容器的存储卷已满,需要我们及时清理相关文件,并对docker的路径进行迁移。 历史攻略: centos:清理磁盘空间 …

三国杀十周年电脑版PC端模拟器游玩教程

三国杀十周年电脑版PC端模拟器游玩教程 《三国杀十周年》是一款以三国时代丰富的历史背景和独特的玩法手机策略游戏,在游戏中可自由选择扮演一位三国时期著名的人物,吸引了大量的历史爱好者和卡牌游戏玩家。如果大家想要轻松享受端游操作体验&#xff0…

【一刷《剑指Offer》】面试题 32:从 1 到 n 整数中 1 出现的次数

力扣对应题目链接:233. 数字 1 的个数 - 力扣(LeetCode) 牛客对应题目链接:整数中1出现的次数(从1到n整数中1出现的次数)_牛客题霸_牛客网 (nowcoder.com) 一、《剑指Offer》对应内容 二、分析题目 先随便…

Go语言之内存分配

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ Go 语言程序所管理的虚拟内存空间会被分为两部分:堆内…

牛客TOP101:单链表的排序

文章目录 1. 题目描述2. 解题思路3. 代码实现 1. 题目描述 2. 解题思路 按我们以往的排序算法来看,针对链表来说都是太不合适,因为很多都会出现指针前移后移,后移还好说,前移对于链表来说就太难了,而且大部分都是某一个…

HiDiff: 用于医学图像分割的混合扩散框架| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 HiDiff: Hybrid Diffusion Framework for Medical Image Segmentation HiDiff: 用于医学图像分割的混合扩散框架 01 文献速递介绍 医学图像分割是将医学图像数据转化为有意义的、空间结构化的信息,如器官和肿瘤。随着深度学习(DL&#x…

primeflex教学笔记20240720, FastAPI+Vue3+PrimeVue前后端分离开发

练习 先实现基本的页面结构&#xff1a; 代码如下&#xff1a; <template><div class"flex p-3 bg-gray-100 gap-3"><div class"w-20rem h-12rem bg-indigo-200 flex justify-content-center align-items-center text-white text-5xl">…

RESTful API设计指南:构建高效、可扩展和易用的API

文章目录 引言一、RESTful API概述1.1 什么是RESTful API1.2 RESTful API的重要性 二、RESTful API的基本原则2.1 资源导向设计2.2 HTTP方法的正确使用 三、URL设计3.1 使用名词而非动词3.2 使用复数形式表示资源集合 四、请求和响应设计4.1 HTTP状态码4.2 响应格式4.2.1 响应实…

新能源汽车空调系统的四个工作过程

汽车空调制冷系统组成 1.汽车空调制冷系统组成 以R134a为制冷剂的汽车空调制冷系统主要包括压缩机、电磁离合器、冷凝器、 散热风扇、储液于燥器、膨胀阀、蒸发器、鼓风机、制冷连接管路、高低压检测 连接接头、调节与控制装置等组成。 汽车空调的四个过程 1压缩过程 传统车…

nginx的access.log日志输出请求总数、QPS和平均带宽

适用格式 #log_format main $remote_addr - $remote_user [$time_local] "$request" # $status $body_bytes_sent "$http_referer" # "$http_user_agent" "$http_x_forwarded_for"; 形如&#…

差分进化算法原理及其MATLAB/Python代码

1.算法简介 引用自&#xff1a;Storn R, Price K. Differential evolution–a simple and efficient heuristic for global optimization over continuous spaces[J]. Journal of global optimization, 1997, 11: 341-359. 今天给大家带来的是一个非常经典的智能优化算法–差分…

buu做题(6)

目录 [GWCTF 2019]我有一个数据库 [WUSTCTF2020]朴实无华 [GWCTF 2019]我有一个数据库 什么都没有, 尝试用dirsearch扫一下目录 可以扫到一个 /phpmyadmin 可以直接进入到数据库里面 但里面没什么东西 可以看到它的版本不是最新的, 搜一下相关的漏洞 phpMyAdmin 4.8.1后台文…

OCR识别采购单小程序管理助手

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

nodejs学习之process.env.NODE_ENV

简介 process对象是 Node 的一个全局对象&#xff0c;提供当前 Node 进程的信息。它可以在脚本的任意位置使用&#xff0c;不必通过require命令加载。该对象部署了EventEmitter接口。 process.env 属性返回包含用户环境的对象 使用 pnpm init新建index.js const { env } r…

在win10上通过WSL和docker安装Ubuntu子系统,并配置Ubuntu可成功使用宿主机GPU

本文主要记录win10系统上,通过WSL的Ubuntu系统以及Docker使用GPU的全部过程。 文章目录 1、 启用hyper-v2、 安装docker3、 安装WSL3.1 安装WSL23.1.1 检查是否安装了WSL23.1.1 安装和配置 WSL 23.2 安装Ubuntu 子系统3.3 检查并修改WSL版本4、docker配置ubuntu20.04 LTS5、下…

linux系统下,matplotlib无法显示中文字体的解决办法

1.查看自己系统是否安装了中文字体 看是否有这个目录&#xff0c;如果没有的话&#xff0c;则进行安装 2.安装中文的字体 sudo apt-get install ttf-wqy-zenhei3.测试matplotlib进行显示中文字体 from matplotlib.font_manager import FontProperties font FontProperties…