商业前端TS开发自动化工具

本期作者

一、背景

商业侧的业务比较复杂,B端项目中含有大量常量类的类型判断,且因历史原因,很多常量值前端无法直接知其含义,这既不利于新人的上手,也不利于项目的维护。

在开发协作上,前后端的API沟通,大都通过配置swagger api来进行,要不就是口口相传或者通过写info文档来定义结构、入参及出参,这种协作方式不仅沟通成本高,且前端缺少能主动感知后端API变更的手段。

同时,为了提高项目的可维护性,组内推动前端项目TS工程化,在改造过程中,也会因为业务迭代,需要创建新的项目,而新项目TS工程化的过程,不仅需要自定义大量的类型,也需要定义后端API类型参数,如果全部通过手动敲,代价太大,不仅很容易出错,也会影响业务的开发效率。

因此,为了提升开发协作效率,增加前端主动感知API的能力,提升项目的可维护性和开发效率,开发实现了TS自动化生成工具。

二、核心功能

  1. 自动生成api函数体结构

  2. 自动化生成api interface

  3. 自动生成本地mock file

  4. 支持自定义模版输出改造

  5. 支持驼峰与下划线转换输出

  6. 支持自定义header改造

  7. 同时支持swagger api v2和v3版本

三、转换原理

swagger api doc的文档结构

图片

关键属性拆分:

图片

注:Template Function可根据实际情况进行覆盖,默认是商业侧的模版输出格式。

四、项目接入

工具地址:(Package - @bilibili-business/ad-swagger-fe)

接入步骤:

1.安装

npm install @bilibili-business/ad-swagger-fe --registry=http://registry.npm.bilibili.co

2.配置模版文件,在项目根目录下新建swagger.config.js文件(目录按需)

3.可将示例代码(下方文档中)可以直接copy到swagger.config.js文件中

4.替换修改代码中的source地址,将其替换成目标swagger doc地址

5.命令行中执行:node ./swagger.config.js

6.项目中的src目录下,会多出一个swagger文件夹,即为生成的目标文件

7.可以根据生成的内容,调整工具参数,包括header

模版示例代码

图片

五、项目实践

目前该工具已在商业前端项目中推广并广泛使用,商业侧整体接入率85%, 带货项目接入率100%。

生成的API函数TS interface 可直接使用,无需手动编码,业务开发效率提升1pd。

举例:后端API接口数1556个

图片

通过工具生成的代码

  • 生成的API实例

图片

  • 生成的Interface

图片

  • 在项目中直接使用

图片

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024最新图标设计趋势!附超好用的图标工具清单

图标,在界面设计中的作用不容小觑。正所谓浓缩的就是精华,一个小小的图标,却有着高效传递信息、美化界面排版、提升用户体验的巨大能力。 既然图标如此重要,了解图标设计趋势对设计师来说几乎是必须要做的事,它可以让…

Java+SpringBoot+Vue+MySQL实战:打造智能餐厅点餐系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

项目管理工具及模板(甘特图、OKR周报、任务管理、头脑风暴等)

项目管理常用模板大全: 1. 项目组OKR周报 2. 项目组传统周报工作法 3. 项目甘特图 4. 团队名单 5. 招聘跟进表 6. 出勤统计 7. 年度工作日历 8. 项目工作年计划 9. 版本排期 10. 项目组任务管理 11. 项目规划模板 12. 产品分析报告 13. 头脑风暴 信息化项目建设全套…

搞不完的事情,大不了加班?

工作是生活的一部分,但当你发现搞不完的事情,大不了加班!你就会陷入无限的循环。 如果你想早点下班 ,并且好好做自己的账号,还是少看哪些月入5万-10万的博主! 如果你照着大V账号模仿大概率会失败&#xff…

基于SSM技术的农场管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 项目概述 3 1.1 选题背景 3 1.1.1 社会发展背景 3 1.1.2 需求发展背景 3 1.1.3 经济发展背景 3 1.2 研究目的与意义 3 1.3 国内外现状和发展趋势 3 1.3.1 国内外发展现状 3 1.3.2 国内外发展趋势 4 1.4 本章小结 4 2 技术简介 5 2.1 开发…

【深度学习笔记】优化算法——动量法

动量法 🏷sec_momentum 在 :numref:sec_sgd一节中,我们详述了如何执行随机梯度下降,即在只有嘈杂的梯度可用的情况下执行优化时会发生什么。 对于嘈杂的梯度,我们在选择学习率需要格外谨慎。 如果衰减速度太快,收敛就…

高压1000kW 海洋平台测试交流干式负载箱的应用

高压1000kW海洋平台测试交流干式负载箱是一种用于模拟实际负载的设备,主要用于对电力系统、发电机组、变压器等设备进行性能测试和故障诊断。在海洋平台上,这种负载箱的应用具有重要意义,主要体现在以下几个方面: 1. 设备性能测试…

Python爬虫实战(基础篇)—13获取《人民网》【最新】【国内】【国际】写入Word(附完整代码)

文章目录 专栏导读背景测试代码分析请求网址请求参数代码测试数据分析利用lxml+xpath进一步分析将获取链接再获取文章内容测试代码写入word完整代码总结专栏导读 🔥🔥本文已收录于《Python基础篇爬虫》 🉑🉑本专栏专门针对于有爬虫基础准备的一套基础教学,轻松掌握Py…

通过Electron打包前端项目为exe

🧑‍🎓 个人主页:爱蹦跶的大A阿 🔥当前正在更新专栏:《JavaScript保姆级教程》、《VUE》、《Krpano》 ✨ 正文 1、 拉取electron官网上的demo,拉下来之后安装依赖,项目跑起来之后,就…

AutoPSA里给定了弹簧刚度,为什么计算没有引用?

山东一用户问:已经给定了弹簧刚度,为什么计算没引用? 在AutoPSA里包含两种算法仿CAESARII ,仿GLIF算法。 在仿CAESARII算法里直接给定弹簧刚度与安载荷载,两个都给了相应值,也就是给定了弹簧号&#xff1b…

ChonBlockTM Blocking/Sample Dilution ELISA Buffer

酶联免疫吸附测定(enzyme linked immunosorbent assay,ELISA/ELASA)是一种方便灵敏的抗体和抗原检测方法,目前已经被广泛应用于多个领域。但是,在研究和临床领域,实验过程中出现的假阳性常会被误判为真实的…

【REST2SQL】12 REST2SQL增加Token生成和验证

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…