当前位置: 首页 > news >正文

Flyio封装API接口(uniapp开发微信小程序)

Flyio封装API接口

1)flyio 是什么?

2)flyio能干什么?

3)flyio使用


1)flyio 是什么?

一个支持所有JavaScript运行环境的基于Promise的、支持请求转发、强大的http请求库。可以让您在多个端上尽可能大限度的实现代码复用。

2)flyio能干什么?

Fly.js 是一个基于 promise 的,轻量且强大的Javascript http 网络库,它有如下特点:

  1. 提供统一的 Promise API。
  2. 浏览器环境下,轻量且非常轻量 。
  3. 支持多种JavaScript 运行环境
  4. 支持请求/响应拦截器。
  5. 自动转换 JSON 数据。
  6. 支持切换底层 Http Engine,可轻松适配各种运行环境。
  7. 浏览器端支持全局Ajax拦截 。
  8. H5页面内嵌到原生 APP 中时,支持将 http 请求转发到 Native。支持直接请求图片。
3)flyio使用

1、安装(使用npm或yarn等)

npm install flyio

2、微信小程序中引入flyio,新建utils文件夹,在文件夹中新建request.js

let Fly = require("flyio/dist/npm/wx")
let fly = new Fly

3、全局请求配置

//设置超时
fly.config.timeout = 30000;
//设置请求基地址
fly.config.baseURL = 'https://uniapp.dcloud.io/api';

4、拦截器

// 添加请求拦截器
fly.interceptors.request.use((request) => {// 给所有请求添加自定义header,带上token信息让服务器验证用户登陆let token = uni.getStorageSync('aliToken');request.headers['Authorization'] = token;// 在当前页面显示导航条加载动画uni.showNavigationBarLoading();return request;
})
// 添加响应拦截器,响应拦截器会在then/catch处理之前执行
fly.interceptors.response.use((response) => {if (response.data.errorNo != 0) {uni.showToast({title: response.data.errorInfo,icon: 'none',});}uni.hideNavigationBarLoading()return response.data; //请求成功之后将返回值返回},(err) => {// 在当前页面隐藏导航条加载动画uni.hideNavigationBarLoading()if (err.status === 0) {uni.showToast({title: '网络请求延时',icon: "none",});return Promise.reject(err);}let code = err.response.status;if (code === 401) {uni.navigateTo({url: "/pages/mine/login?interceptors=1"});} else if (code === 403) {uni.showToast({title: '没有权限',icon: "none",});return Promise.reject(err);} else {uni.showToast({title: err.response.data.message,icon: "none",});return Promise.reject(err);}}
)
export default fly;

5、添加api 接口配置,在utils文件夹中新建api.js,引入Fly

import fly from './request'export default {// 新增一条打卡记录addCheck: (params) => {return fly.post('/check/add', params);},// 获取用户信息getUser: () => {return fly.get('/user/get');},// 查询点赞的用户getLikeUsers: (params) => {return fly.get('/user-like-check/getUsers?id=' + params);},...
}

6、挂载api到全局,在main.js中引入挂载

import API from "./utils/api.js"
Vue.prototype.$api = API

7、调用接口

let params = {// 评论文本content: this.content,groupId: this.curGroup,
};
this.$api.addCheck(params).then(res => {console.log(res)}).catch(err => {console.log(err)});// 调用获取用户信息接口
this.$api.getUser().then(res => {console.log(res)
}).catch(err => {console.log(err)
})

相关文章:

  • linux(ubuntu)中drontab定时器命令详解
  • MySQL之导入导出远程备份(详细讲解)
  • 在VS Code中安装Copilot与安装其他扩展的方法一样,只需简单几步
  • Filter Options in Select Field
  • BERT Intro
  • 图像中部分RGB矩阵可视化
  • JavaSec基础 反射修改Final修饰的属性及绕过高版本反射限制
  • [VSCode] VSCode 常用快捷键
  • Java设计模式-访问者模式
  • 世邦spon IP网络对讲广播系统任意文件上传漏洞
  • LabVIEW在旋转机械故障诊断中的随机共振增强应用
  • C++系列十六:枚举
  • 第二百五十五回
  • Open3D 平均点密度计算-方法1(12)
  • 【服务器数据恢复】FreeNAS+ESXi数据恢复案例
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【css3】浏览器内核及其兼容性
  • 【刷算法】从上往下打印二叉树
  • 345-反转字符串中的元音字母
  • Android开源项目规范总结
  • Apache Pulsar 2.1 重磅发布
  • co.js - 让异步代码同步化
  • HTTP那些事
  • Java编程基础24——递归练习
  • Java应用性能调优
  • JS题目及答案整理
  • LeetCode29.两数相除 JavaScript
  • mysql中InnoDB引擎中页的概念
  • Python学习笔记 字符串拼接
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • TypeScript迭代器
  • uva 10370 Above Average
  • Vue小说阅读器(仿追书神器)
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 基于遗传算法的优化问题求解
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 数组大概知多少
  • 用jQuery怎么做到前后端分离
  • ${ }的特别功能
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转) ns2/nam与nam实现相关的文件
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ***详解账号泄露:全球约1亿用户已泄露
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .form文件_一篇文章学会文件上传
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 8.0 中有哪些新的变化?
  • .NET CLR Hosting 简介
  • @JsonSerialize注解的使用