商业前端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.mzph.cn/news/729620.shtml

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

相关文章

什么是工业边缘网关?工业边缘网关有什么作用?

在数字化和智能化的浪潮下,工业领域正迎来前所未有的变革。其中,工业边缘网关作为这场变革中的重要角色,正逐渐受到人们的关注。那么,什么是工业边缘网关?它如何在工业数字化中发挥作用?今天,就…

Wireshark——获取捕获流量的前N个数据包

1、问题 使用Wireshark捕获了大量的消息,但是只想要前面一部分。 2、方法 使用Wireshark捕获了近18w条消息,但只需要前5w条。 选择文件,导出特定分组。 输入需要保存的消息范围。如:1-50000。 保存即可。

环链表寻找交点

目录 1.题目描述和出处 2.分析 3.代码 1.题目描述和出处 LCR 022. 环形链表 II - 力扣(LeetCode) 描述很简单,寻找交点,找到则返回交点,找不到返回空。 2.分析 如图:(b表示环的长度&#…

springboot3.x集成nacos踩坑,并实现多环境配置

一、nacos安装部署 springboot3.x集成Nacos首先需要将Nacos从1.x升级到2.x,建议直接安装2.x版本,手动将1.x的配置信息迁移到2.x中,先并行一段时间,待全部迁移完成稳定运行之后再停掉1.x,升级和安装、操作请查看官方文…

DailyNotes个人笔记管理工具

DailyNotes 是记录笔记和跟踪任务的应用程序,使用markdown进行编辑 部署 下载镜像 docker pull m0ngr31/dailynotes创建目录并授权 mkdir -p /data/dailynotes/config_dir chmod -R 777 /data/dailynotes启动容器 docker run -d --restart always --name mynot…

Java中的数据压缩和存储技术:Zip、GZip与Brotli

第1章:引言 大家好,我是小黑,作为一名Java程序员,在业务开发中,常常面临着一个问题:如何高效地处理和传输这些庞大的数据呢?答案就在于数据压缩技术。数据压缩,简而言之&#xff0c…

SpringBoot+Ajax+redis实现隐藏重要接口地址

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 文章目录 …

九型人格测试,8号领袖型人格的职业分析

8号人格,也叫领袖型人格,在九型人格中间,是一种天生领导的存在。他们生性开朗,能够和其他人建立良好的关系,为人不拘小节,遇强则强,坚守心中的理想和正义。不喜欢被人控制,喜欢自己当…

Java并发-并发模型

可以使用不同的并发模型来实现并发系统。一并发模型指定的系统协作线程如何完成他们给予的任务。不同的并发模型以不同的方式拆分任务,线程可以以不同的方式进行通信和协作。本并发模型教程将更深入地介绍撰写本文时(2015年至2019年)使用的最…

大模型时代,华为与中软国际携手“打通AI落地应用最后一公里”

文 | 智能相对论 作者 | 叶远风 大模型驱动千行百业智能化变革已经成为广泛共识,下一步的问题是,企业要如何更好地推进? 近日,“2024中关村论坛系列活动——第二届北京人工智能产业创新发展大会”在北京国家会议中心成功举办&a…

yudao-cloud 学习笔记

前端代码 浏览器打开 https://cloud.iocoder.cn/intro/ F12 执行代码 var aaa $(".sidebar-group-items").find("a"); var ll[]; var tt[]; for(var i0;i<aaa.length;i ){ ll.push("https://doc.iocoder.cn" $(aaa[i]).attr("href&quo…

Hi3516DV500+SC2210 AIISP 黑光相机

1. Hi3516DV500 Hi3516DV500是一颗面向行业市场推出的高清智能网络摄像头SoC。该芯片最高支持2路sensor输入&#xff0c;支持最高5M30fps的ISP图像处理能力&#xff0c;支持2F WDR、多级降噪、六轴防抖、多光谱融合等多种传统图像增强和处理算法&#xff0c;支持通过AI算法对输…

第11周,第三期技术动态

大家好&#xff0c;才是真的好。 真没想到&#xff0c;本周是今年第十一周&#xff0c;2024年还有不到三百天就结束了。 今天周五&#xff0c;我们继续介绍与Domino相关产品新闻&#xff0c;以及互联网或其他IT行业动态等。 一、在Windows 10和Windows 11上运行Domino和Trav…

案例研究|辛格林电梯借助DataEase实现数据整合与智能展示

辛格林电梯&#xff08;SIGLEN&#xff09;于2012年创立&#xff0c;是电梯领域的领军品牌之一。该公司总部位于广东佛山&#xff0c;是全国首批获得A1级电梯制造资质的企业&#xff0c;拥有省级工程技术研究中心。辛格林电梯专注于研发和生产高品质电梯产品&#xff0c;涵盖别…

一个用libcurl多线程下载断言错误问题的排查

某数据下载程序&#xff0c;相同版本的代码&#xff0c;在64位系统中运行正常&#xff0c;但在32位系统中概率性出现断言错误。一旦出现&#xff0c;程序无法正常继续&#xff0c;即使重启亦不行。从年前会上领导提出要追到根&#xff0c;跟到底&#xff0c;到年后的今天&#…

通过统一规划和团队整合,提升企业财务洞察

在当今快节奏的商业环境中&#xff0c;企业财务职能部门更应该采取更迅速的行动来适应这个社会。大部分企业期待更高效的战略决策&#xff0c;尤其是面临海量数据信息的堆叠。但是企业领导者应该知道&#xff0c;速度本身并不是最终目标&#xff0c;财务团队必须更快地完成工作…

基于springboot的大学生智能消费记账系统的设计与实现(程序+数据库+文档)

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一、研究背景…

六种方式,教你在SpringBoot初始化时搞点事情!

前言 在实际工作中总是需要在项目启动时做一些初始化的操作&#xff0c;比如初始化线程池、提前加载好加密证书....... 那么经典问题来了&#xff0c;这也是面试官经常会问到的一个问题&#xff1a;有哪些手段在Spring Boot 项目启动的时候做一些事情&#xff1f; 方法有很多…

火爆新品推荐!AI大模型应用和ai 数字人开发!

火爆新品来袭&#xff01;AI大模型应用和AI数字人开发成为当下科技界的热点话题。随着人工智能技术的不断发展&#xff0c;AI大模型应用已经开始在各个领域大放异彩。从医疗诊断到金融风控&#xff0c;从自然语言处理到智能推荐&#xff0c;AI大模型的应用场景愈发广泛&#xf…

PyCharm 显示无法加载文件 D:\...,因为在此系统上禁止运行脚本。

PyCharm 显示无法加载文件 D:…&#xff0c;因为在此系统上禁止运行脚本。 PyCharm 显示 无法加载文件 D:\python test\AI_CV\venv\Scripts\activate.ps1&#xff0c;因为在此系统上禁止运行脚本。 解决方法&#xff1a; winx点击Windows PowerShell&#xff08;管理员&#…