网站项目上线当晚,后端的同事被打了...

news/2024/5/10 1:30:03/文章来源:https://blog.csdn.net/BTUJACK/article/details/125353596

事情是这样的:今天我们公司的后端说他接口写完了,并分享了一个接口文档给我。用的就是 Swagger UI 自动生成的那种接口文档,就像这种:

fbfe95901503129409d4cc9286aa850d.png

这种 Swagger UI文档我每次看着就头大,毛病多多

  • 查看多级模型时要一级级点开

  • 在接口数量变多的时候非常难用,连分类菜单都没有

  • 提交参数为 JSON 的时候不能格式化

  • 参数出错的时候查找麻烦

  • 返回结果不能折叠,长得没法看

时间比较紧急,我就按照他给的文档里的参数与响应数据,写到了我的前端页面上,前端这边简单自测了一下就匆匆上线了。

上线完当晚就炸了。。

b63190393c4a15c4656a55277c562609.gif

页面上各种接口报错:

  • 参数不存在

  • 参数类型错误

  • 接口不存在(是因为接口写错了)

老大马上过来找我俩,但是前后端各执一词:

  • 前端:我吊你,怎么你分享的接口这么多错误?

  • 后端:我吊你,你用之前不会测一测接口正不正常?

  • 前端:我为什么要测?你开发的接口,你自己不测好?

  • 后端:我怎么知道你要用什么样的数据!你要是稍微测一下接口,能有这么多事?

c9ea20f5361ebd16ae07ba7f65b9ac9d.png

归根结底是个成本问题

这时候老大很冷静,阻止了我们的吵架。

c1674764a8ce4dc5bd70303b30bbbca6.png

老大分析了一下这次事故的主要原因:

  • 1、后端马虎了,一些接口没有写对,也忘记调试了

  • 2、时间紧,前端没来得及完全测接口

然后老大说,这归根结底是个成本问题。要是前后端测接口都特别简单方便,你们这个问题就不存在了嘛!

你们现在用的在线接口文档,功能几乎为零。应该选一个功能更加强大的在线接口文档工具,直接在线就把接口调了,你们是不是就不会出这些问题了。

这个工具应该具备以下功能:

  • 调试功能,前端能很方便地调试接口数据

  • 代码生成功能,这样前端可以少写点代码,提高效率同时也提高了准确性

  • 接口同步功能,接口文档一定要是最新的代码信息

我们纷纷点头,是啊是啊。

786c2867ea982d244c622ca929daf548.png

老大说,我最近试了一款工具,就可以零成本地解决你们这些问题!

然后他给我们看了一个神仙文档。

就是这个!!⬇️⬇️⬇️

0e8b6f787d14ab92c66773341e2c8862.png

为什么说它神仙呢?因为它满身都是牛逼到不行的特性,比平常见到那些 API 文档不知道高到哪里去了。

5768e948d5ded9309da60ca3614d4321.png

在线调试

这个文档是用 Apifox 做的,我之前有试用过这个工具,完全免费不限功能的,没想到最近又有这么多厉害的新功能出来了。

点击文档右上角的运行按钮,就会出现“在线运行”的模块

93e5d6e5ec00cf1a767b52c5c517909b.png

这个界面上就能直接调试接口了!直接 1. 填参数,2. 选环境,3. 点发送,接口请求就发出去了!下面就有返回结果!根本用不着 Postman!更不用把 API 照着抄一遍!

a4bc38a7b03ee7c93c58b4d11ea14532.png

我心想,如果当时上线之前,用的是 Apifox 的话,那简直是不会出现事故:

  • 参数不存在?我在线调试后获得数据了,通过比对我知道哪个参数不存在

  • 参数类型错误?同样的,在线调试之后,通过比对,我知道哪个参数的类型是错的

  • 接口不存在(是因为接口写错了)?调试的时候就报接口不存在了,第一时间找后端~

ea7a8c1de4e4f15a0fe42c7ee596c556.png

自动生成

我跟老大说,这个功能看起来是很强大啊。可是要是上线时间紧,谁有功夫去搞这么个接口文档啊,配置起来应该很麻烦吧?

老大邪魅一笑。

3a54d87073473e21184321774ae4fb02.png

他说,这个文档,是自!动!生!成!的!

只要把 Swagger 的 URL 填到 Apifox 里面去,Apifox 就会自动导入 API 定义,然后就能生成这个好用的文档!

后端随便改代码,前端随时可以在线调试!

215f6985aeede249d8f264478cbe8662.png

而且,还可以导入多个来源的 Swagger!一套接口文档来自多个不同的后端项目也没问题!

5cb251ff9d6dc17a85d79ee85b8b3b7d.png

生成请求代码

后端说,不就是一个在线调试接口吗,也没有到神仙的地步嘛。

老大说,你还是太年轻。

d4236f1f898ad1e0357fb0566500e052.png

在这个在线文档页面上,还有一行熟悉的 icon。这是什么呢?

5635abb8dd356992327f054482f60db2.png

自!动!生!成!代!码!

点击对应的语言,就能直接生成请求的代码!???

我选择了 JavaScript 之后,居然还提供了 Fetch、Axios、Jquery 等等请求方式的代码???

71cef0c17c362b98b9f2f1909597d0d0.png

我直接 copy 一下代码,粘进代码里就能用???

一个在线文档,卷成这样至于嘛???

5afb6d4629731dc24371e4682f770665.png

生成模型代码

老大说,别急,还没完。

21cff1461171b6432679f5bcd6015e11.png

API 文档嘛,都会有个“返回响应”的模块,就是告诉你后端吐出来的数据是什么类型什么长度等等。前端再写个数据结构把这些数据接着,然后放进页面里去。

在这个神仙文档里呢,“返回响应”里也有个“生成代码”

da4414d9b6789826c8cdf25c3219e92d.png

我点了一下,就弹出了这个框:

ed180cbcf17c96e3fe306efc52e99aa6.png

左边还可以选择你生成代码的配置,包括:编程语言、命名风格、校验开启等等。

我看了看,Java,C,C++,JS,Swift,Go,Python,TypeScript……基本上我知道的语言全都有。

怎么着?返回数据结构的代码也不用写了?复制一下粘过去就行了?

我默默翻了翻它自动生成的代码,又关上了。

我感觉我自己写的 Java 代码还没它自动生成写的好。

97876f2d0726b71c32902550a663dded.png

云端 Mock

我说老大,我明白了。我这就去下载 Apifox,下个迭代我就用这个在线文档。哦不,下个迭代我就逼后端用这个在线文档。

老大说,急什么。等我说完。你知道云端 Mock 吗?

我说,云嘛,神仙都是要驾云的,这很正常。

老大说你正常一点。云端 Mock,就是在 API 文档页面上就直接实现 Mock 服务,虚拟一个服务端出来。

我:???

e6fb593277082a887c726482f9881e51.png

老大说,比如,我们要请求一个银行的 API,银行肯定不会让你随便请求啊,都是要验证身份限制次数的。用这个 Apifox 呢,你就可以直接在接口文档上请求 Mock 数据了,也不会限制你的次数,也不会收你的钱。

我说老大,咱们是不是跳得有点快。你驾云我跟不上的。

老大说没有啊,我们不是在聊这个在线文档的特性嘛。你看,这里有测试环境、正式环境和云端 Mock 环境,你只要切换到云端 Mock 环境,请求就会发给 Mock 服务器了,跟正式环境调试一样一样的。

f20057c51eeb2c4e1a54e8fe2a1cd719.png

我:!!!!!

还可以这样??

老大又用浏览器打开了这个 URL(https://mock.apifox.cn/m1/1035644-0-default/users/2),说你看,直接访问 URL 就能获取到 Mock 数据了,你们前端用起来是不是很爽?

222ecef49e0e9e3365545152e7fb8a7a.png

我猛点头。

a30fa0cf7343789d40f2c492e18e995c.png

这个时候,后端说,那是不是我们直接把常用的那些第三方 API 都做成这种能云端 Mock 的 API 文档,然后开发就都能直接调试第三方接口了?连 Mock 服务器都不用架?

我:

38b2373f2e93f30770d4cbf66c2b97e9.png

API Hub

老大说,你们啊,too young too simple,sometimes naive.

给你们看个东西。

935d90371dc3595a63a6b26efe3bbea7.png

这个,叫做 API Hub。

9de34c4896f919f964a40e89c352c977.png

在 Apifox 里面,已经把这些最常用的第三方 API 都做好了!即时通讯的,电商的,查快递的,项目管理的,统统都有!每一个都可以在线运行生成代码!也可以克隆到自己的项目里,然后用云端 Mock

e0030c5e3ef38e69376805018265a950.png
企业微信的 API 文档,可以在线运行

老大说,人家都把接口文档公开出来了,你们也好好学学人家大厂的接口是怎么设计的。哦对了,咱们公司有接口要公开出去的话,也可以发布到这个 API Hub。

ad7ea61f451e91867aac4b4f39b9cdda.png

老大说,好了,我说完了。你们都听懂了吗?

我说,懂了,明天就去跟后端对线。

652952659edf82007f40c1143d5e4484.png

后端说,等什么明天!我现在就要!

11e59ebc31a442551436fd23d580db07.png

c1081703cd6ef75b998d18254974a2a1.png

扫码加好友,加入海归Python编程和人工智能群

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

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

相关文章

django不修改数据库创外键_【实战演练】Python+Django网站开发系列03-Django初始配置与静态Index页面开发...

#本文欢迎转载,转载请注明出处和作者。1、Django配置前面已经将开发环境准备好了,可以开始进行静态网页的开发。先介绍一下django的目录与文件结构,有几个文件需要重点掌握的:settings.py #用来配置django项目的基本信息的&#x…

大数据平台网站日志分析系统

1:大数据平台网站日志分析系统,项目技术架构图: 2:大数据平台网站日志分析系统,流程图解析,整体流程如下: ETL即hive查询的sql; 但是,由于本案例的前提是处理海量数据,因…

大型网站技术架构(一)--大型网站架构演化(转)

http://blog.csdn.net/chaofanwei/article/details/26865169 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及…

大型网站技术架构(四)--网站的高性能架构(转)

http://blog.csdn.net/chaofanwei/article/details/27168603 网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要…

小心错误使用EasyUI 让网站性能减半

先不谈需求,和系统架构,直接上来就被抛来了一个问题----基础性能太差了,一个网页打开要好几秒。我了个天,我听了也简直不敢相信,难道是数据量特别大?还是其中业务逻辑特别复杂? 简单的介绍下&am…

大型网站技术架构(五)--网站高可用架构(转)

网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点 网站年度不可用时间(1-网站不可用时间/年度…

大型网站技术架构(六)--网站的伸缩性架构(转)

网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的伸缩性设计可以分成两类,一类是根据功能进行物…

大型网站技术架构(七)--网站的可扩展性架构(转)

http://blog.csdn.net/chaofanwei/article/details/29191073 扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力。 设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性…

大型网站技术架构(八)--网站的安全架构(转)

从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。 1、XSS攻击 XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡…

网站(前端、后端)性能(架构)优化手段

网站的性能测试 性能测试是性能优化的前提,也是性能优化结果的检查和度量标准。温馨提示:本文内容有点长,请耐心看完或者先收藏。 性能测试的常用指标: 响应时间并发数目吞吐量。常用的吞吐量指标:①TPS(每秒事务数)…

ASP.NET Core 2.0 使用支付宝PC网站支付

概述 支付宝有比较多的支付产品,比如当面付、APP支付、手机网站支付、电脑网站支付等,本次讲的是电脑网站支付。详细 代码下载:http://www.demodashi.com/demo/11730.html 前言 最近在使用ASP.NET Core来进行开发,刚好有个接入支付…

基于Python-Flask实现的网站例子

概述 使用Flask写的体育网站 包括(注册 论坛 文章评论 组建战队 后台管理)等功能 示例地址文中有写 萌新 请多指教详细 代码下载:http://www.demodashi.com/demo/12380.html 项目示例地址: 网站演示 一、环境搭建 1. 安装配置python3.6 示例网…

JavaScript 编程精解 中文第三版 二十一、项目:技能分享网站

二十一、项目:技能分享网站 原文:Project: Skill-Sharing Website 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 If you have knowledge, let others l…

基于webmagic的种子网站爬取

代码地址如下:http://www.demodashi.com/demo/12175.html 1. 概述 因为无聊,闲来没事做,故突发奇想,爬个种子,顺便学习爬虫。本文将介绍使用Spring/Mybatis/webmagic等框架构建项目并爬取种子磁链。 2. 项目搭建 如下…

基于React的PC网站前端架构分析

代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师;有过完整项目的开发经验,不论大小;对node有所了解,关注前端发展,了解所谓“大前端”的概念&…

基于Python-Flask实现的网站例子

概述 使用Flask写的体育网站 包括(注册 论坛 文章评论 组建战队 后台管理)等功能 示例地址文中有写 萌新 请多指教 详细 项目示例地址: 网站演示 源码下载地址: http://www.demodashi.com/demo/12380.html 一、环境搭建 1. 安装配置py…

Python-Flask实现基金自选网站

代码地址如下:http://www.demodashi.com/demo/14734.html 项目介绍 本项目的基金数据来自天天基金网,但该网站用户体验较差,内容冗余,故自己实现一个轻量级网站,从8个指标维度对股票基金和债券基金进行挑选&#xff0…

任晶磊:如何看待程序员在 GitHub 发起抗议互联网公司实行 996 工作制网站?

作者:任晶磊 有人说,此行为艺术仍然停留在抱怨的阶段。那么我们来看看出路在何方,所幸已有人在路上。注意,这里都是正在落地的干货。 Disclaimer:我在表达观点时会引用自己的研究工作。如果认为此有夹带私货之嫌&…

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&am…

Python网页分析,分析网站的日志数据

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 以下文章来源于大话数据分析,作者:尚天强 网站的日志数据记录了所有Web对服务器的访问活动,本节通过Python第…