flutter app 漫威api客户端

2023-10-12 11:50
文章标签 app 客户端 api flutter 漫威

本文主要是介绍flutter app 漫威api客户端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android学了一段 自学flutter
数据来源漫威开放api 边学边做的作品

apikey 需要申请,每日限3000次请求
申请网址:https://developer.marvel.com

Github:https://github.com/MaxNeverSleep/marvelAPI-flutter
!新手代码,无法保证可读性,持续更新整理…!

内含接口文档,数据分为六大类
互相关联,比如一个comics里有很多charater

Events\事件
Comics\漫画
Charaters\人物
Series\系列
Creators\创作者
Stories\故事

主页面做成了tabview和viewpager
在这里插入图片描述

tabview里点图片是dialog样式查看图片大图,点击文字区域Expanded进入详情页

在这里插入图片描述

详情页detailpage
下图gif是一个Event事件的详情页
charaters和series相当于android水平分页加载的Listview
comics用了swiper (服务器估计外网,图片加载比较慢)


页面间相互的跳转原本用MaterialPageRoute…卡顿严重
后来用了get
https://pub.flutter-io.cn/packages/get
在这里插入图片描述
点击搜索icon打开搜索框弹出软键盘
当前在哪个tab里就搜索哪个tab的内容
(打开搜索框时切换tabview不能实时切换提示文字"search xxxxxxxx",但是搜索内容会变,因为左右切换页面用setstate会卡顿一下,妥协了,后期看看能不能解决。。)

请求参数

//常用参数 其他详见漫威的接口文档
"apikey":"申请到的公有key"
"ts":"当前时间戳"
"hash":"时间戳+私钥+公钥的md5值"
"offset":"分页值,比如offset20 就从第20个往后取limit个值返回"
"limit":"一次返回的数量"
//"titleStartsWith":"可选参数,搜索用的"//获取时间戳void getTimeStamp() {timeStamp=DateTime.now().millisecondsSinceEpoch.toString();}//获取hashvoid getHash() {var content = new Utf8Encoder().convert(timeStamp+_privateKey+_publicKey);var digest = md5.convert(content);// 这里其实就是 digest.toString()hash= hex.encode(digest.bytes);}//dio get请求拿数据
Future<bool> getSeries() async{getTimeStamp();getHash();Map<String, dynamic> paras = {"apikey":_publicKey,"ts":timeStamp,"hash":hash,"offset":_count,"titleStartsWith":value,};//这里的url请求数据种类不同 url不同 详见文档Dio dio = Dio();final response = await dio.get(_host+_getCharactersUrl,queryParameters: paras,);Map userMap = json.decode(response.toString());series = new SeriesDataEntity.fromJson(userMap);seriesEntityList.addAll(series.data.results);total=series.data.total;if(total==0){setState(() {titleString='Search No Results';});}return false;}

这篇关于flutter app 漫威api客户端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195633

相关文章

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri