FlyHttp 的最佳实践:加速项目级 API 请求构建

FlyHttp的相关文章:

FlyHttp 的诞生:从认识各种网络请求开始

FlyHttp 的设计思想:前端 API 自动化构建工具

FlyHttp 的使用:如何高效使用 FlyHttp,支持 JS、TS 项目

一. FlyHttp 是什么?

这是一个自动生成前端代码 service 层的工具,目的就是要解放你的双手,化繁为简,可降低代码量 99%

1. 说明

FlyHttp 模块提供了两种构建模式,一种是直接使用我们已经二次封装的好的 http 实例,使用 http 实例有一些规则要求,主要参考 axios 设计,如果不支持这种方式,我也提供了另一种自定义函数的方式来兼容,总之可以兼容大部分请求形式!

2. 使用 http 实例

Vue / React 中使用,使用 axios 的构建方案!

本工具支持传入 http 实例,将会代理 http 实例进行请求,但是对 http 的请求格式有一些要求:

  • http 请求必须支持 Promise

  • http 请求格式为 http.request(params)

params 参数对象大致如下:

// `url` 是用于请求的服务器 URL
url: '/user'// `method` 是创建请求时使用的方法
method: 'get' // 默认值// `params` 是与请求一起发送的 URL 参数
params: {ID: 12345
}// `data` 是作为请求体被发送的数据
data: {firstName: 'Fred'
}

3. 使用自定义函数

使用 http 实例,可能有时候会有一定的耦合性,极端情况下(可能有我没有用的请求库,请求格式不统一等)有可能会不符合要求,因此提供一个自定义函数的入口,可灵活使用!

参考第 2.2 部分,在 h5 / browser 中使用,使用 ajax 的构建方案!

// 1. 创建 ajax 实例
function ajaxRequest({ url, method, data, success, fail, complete }) {jQuery.ajax({url: `${baseURL}${url}`,type: method,data,dataType: 'json',headers,success: success,error: fail,complete: complete})
}// 2. 创建 FlyHttp 实例
const flyHttp = new FlyHttp.Builder(config => {const { url, method, data } = configreturn ajaxRequest({ url, method, data })
})

二 浅谈 FlyHttp 最佳实践

开发时的最佳实践是一系列被广泛认可的方法和原则,可以帮助开发人员提高代码质量、提高团队效率、降低维护成本等。

以下是我总结的在进行 API 网络请求开发时的最佳实践,仅供参考:

1. 构建流程顺序

2. Axios + FlyHttp 使用流程

以下是我在使用 Vue3 开发项目时的部分核心代码截图,请参考:

3. 请求示例演示

三. FlyHttp 适用领域

这是一个通用的 TypeScript 包,适用于任何在前端开发中,原则上你可以在任何能运行 JavaScript 的地方使用,与前端框架无关,可全端通用,包括但不限于使用以下方式开发:

  • JavaScript

  • TypeScript

  • Vue.js

  • React.js

  • Angular.js

  • uni-app

  • 小程序

四. 说明

  1. 在使用本工具前,要求你至少了解相关框架的不同网络请求库的使用方式,比如:axiosajaxFetch API的基本使用和基本配置,然后再查看本文档。

  2. 本文档仅负责介绍 Flyit 工具的相关使用,如需了解更多其他相关内容,请移步相关的官方文档:

  • FlyHttp 官方文档

  • Vue.js 官方文档

  • uni-app request 官方文档

  • Axios 请求库官方文档

  • Fetch API

  • jQuery ajax

  • XMLHttpRequest MDN

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

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

相关文章

七次课掌握 Photoshop:样式与滤镜

Photoshop 中的图层样式和滤镜功能,能够为图像添加丰富的效果和质感,使图像更加生动和富有创意。熟练掌握这些工具和方法,可以大大提升作品的视觉表现力。 一、图层样式 图层样式 Layer Styles是应用于图层或图层组的特效,如投影、…

ML23_变分推理Variational inference

可以先看第一期https://blog.csdn.net/qq_51605551/article/details/141901941 变分推理(Variational Inference, VI)是一种用于近似贝叶斯推断的方法,它在处理复杂的概率模型时特别有用。贝叶斯推断的核心是计算后验分布,即在给…

Map和Set(下)

我们先对上一小节部分进行一些复习和补充 1. 补充和强调 补充 1. HashMap 和 HashSet 即 java 中利用哈希表实现的 Map 和 Set 2. java 中使用的是哈希桶方式解决冲突的 3. java 会在冲突链表长度大于一定阈值后,将链表转变为搜索树(红黑树)条…

StackWalker 遍历栈帧

StackWalker 遍历栈帧 背景StackWalkerStackFrameOption方法创建 StackWalkerwalk例:打印所有信息例:打印反射帧、隐藏帧 forEachgetCallerClass例:直接调用、反射调用例:栈底调用会抛异常 参考 背景 在看 springboot 3.x 源码时…

捷联惯导原理和算法预备知识

原理和算法预备知识 牛顿第一运动定律-惯性定律:如一物体不受外力作用,它将保持静止状态或匀速直线运动状态不变。 牛顿第二运动定律:表达式为Fma,。其中F为物体所受的合力,m为物体的质量,a为物体的加速度。这个公式…

便捷工具--ssh登录ubuntu

一、概述 由于ubuntu终端的使用会有诸多不便捷的地方,建议使用mobaterm、xshell、SecureCRT等软件,通过ssh方式,操作虚拟机的ubuntu系统。 1、ssh的安装 sudo apt install openssh-server2、查看ubuntu的ip 3、ssh端登录 ssh链接linux端的…

【白盒测试】单元测试的理论基础及用例设计技术(6种)详解

目录 🌞前言 🏞️1. 单元测试的理论基础 🌊1.1 单元测试是什么 🌊1.2 单元测试的好处 🌊1.3 单元测试的要求 🌊1.4 测试框架-Junit4的介绍 🌊1.5 单元测试为什么要mock 🏞️…

【案例分享】高性能AI边缘计算赋能车端真值系统​

近年来,智能驾驶行业正在蓬勃发展,对于研发完成的智能驾驶车辆,需要对其进行全方面的测试才能商用量产,以确保用户的人身财产安全。将测试车辆直接进行实际道路测试将面临安全性,经济性,场地可靠性&#xf…

【docker】11. 容器实战案例

综合实战一:Mysql 容器化安装 进入 mysql 的镜像网站,查找 mysql 的镜像 mysql docker hub 官网 可以看到有这么多的 tag 我们选择使用最多的 5.7 版本,拉取镜像 root139-159-150-152:/data/myworkdir/container# docker pull mysql:5.7 5.…

全新图文对、视频文本对数据集,高效赋能多模态大模型训练任务

海天瑞声11月数据集上新!这次推出的数据集包括语音识别、语音合成、多模态等领域,可用于多模态大模型训练任务,开发者可轻松应对数据瓶颈,高效提升模型性能。 印度尼西亚语语音识别数据集 泰语语音识别数据集 温柔贴心中文女声语…

ES集群规模与角色规划

业务场景需求 业务特征 目前日志统计分析集群具有以下关键特征: 延迟要求:30秒以内并发性能:高并发读写数据容错:可容忍少量数据丢失 数据规模 每日原始日志采集量:约150GB数据查询范围: 近期数据&…

[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备

目录 0.概述 持久化的策略 1 RDB 1.1 触发机制 1.2 流程说明 1.3 RDB 的优缺点 0.概述 在学习 MySQL 数据库时,我们了解到事务的四个核心特性:原子性、一致性、持久性和隔离性。这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时&a…

Modern Effective C++ 条款二十九三十:移动语义和完美转发失败的情况

条款二十九:假定移动操作不存在,成本高,未被使用 移动语义可以说是C11最主要的特性。"移动容器和拷贝指针一样开销小","拷贝临时对象现在如此高效,“写代码避免这种情况简直就是过早优化"。很多开…

C++【模板】plus

目录 一、非类型模板参数 1.引入 2.使用 二、模板特化 1.函数模板特化 2.特化失效 3.类模板特化 应用 三、*带模板的分离编译 一、非类型模板参数 1.引入 我们使用宏对某个变量进行定值,如 #define N10 --->那么N在下面使用时始终为10,如果…

Leetcode 每日一题 290.单词规律

目录 一、问题分析 二、解题思路 三、代码实现 四、复杂度分析 五、总结 在编程的世界里,我们常常会遇到各种有趣的字符串匹配问题。今天要探讨的就是这样一个问题:给定一种规律 pattern 和一个字符串 s,判断 s 是否遵循与 pattern 相同…

浅谈FRTC8563M实时时钟芯片

FRTC8563M是NYFEA徕飞公司推出的一款实时时钟芯片和日历芯片,采用MSOP-8封装形式。它具有低功耗特性,适用于电池供电的便携式设备。该芯片提供年、月、日、星期、小时、分钟和秒的计时功能,并且具有闹钟功能。FRTC8563M通过I2C总线与微控制器…

HOC vs Render Props vs Hooks

相关问题 什么是 HOC / Render Props / Hooks为什么需要 HOC / Render Props / Hooks如何提高代码复用性Hooks 的实现原理Hooks 相比其他方案有什么优势 关键点 复用性HOC / Render Props / Hooks 三种写法都可以提高代码的复用性,但实现方法不同: H…

【每天一篇深度学习论文】2024多级卷积模块MCM

目录 论文介绍题目:论文地址: 创新点方法模型总体架构双流编码器特征融合模块解码器 核心模块描述多尺度感知融合模块(MAFM)全局融合模块(GFM)多级卷积模块(MCM) 即插即用模块作用特…

Play with docker 使用ssh命令远程登录时Permission denied (publickey)

可以看到这里使用的是 ssh-ed25519 在本机生成对应密钥: ssh-keygen -t ed25519 -P "" -f ~/.ssh/id_ed25519 然后再尝试远程连接就好了。 参考:无法通过SSH连接到码头游乐场中的实例-腾讯云开发者社区-腾讯云

我眼中的“懂重构”(一)

初识重构 2017年的时候,领导让我看公司的一本书《重构——改善代码的既有设计》,这是一本JAVA版本的,前后看了2遍。那时候看书因为不懂看的格外仔细。我只是那时候不懂,然而多年后的今天我仍然发现很多人对重构充满误解。在刚进入…