目录
回复内容:
首页 后端开发 php教程 调接口到底在调什么,工作量在哪儿?

调接口到底在调什么,工作量在哪儿?

Oct 17, 2016 am 09:13 AM

做为一个不懂技术的IT从业者,经常听人讲,今天在调接口,然后调通几个接口就要好久,感觉好大工作量的样子。我想问,调接口到底在在调什么?工作量在哪儿?希望技术大神可以深入浅出的给我科普一下。万分感谢!(如果不能深入浅出,深入一点也好,我慢慢查百科,哈哈。再次感谢!)

回复内容:

调接口调的是你跟你同事对同一份需求的不同的理解,这种东西是无法估量的,谁让你们不从第一天开始就密切合作。这就是为什么我反对server和client用两个人来写。IT都已经这么多年了,把人当CPU超流水线不就好了吗,你先做server,等你做完了去做client。就算因为临时原因被迫server和client一起写,也应该每次都同时启动真实的server和client,出了事不要担心block了别人,两个人合作一起搞定。

虽然前期感觉时间好像被浪费掉了,但是眼光放长远,总的来说效率要提高好几倍。

理想情况。

server:我ok了你调用吧!

client:我测试调用ok,准备提测!


实际(国内)情况。

server:我ok了你调用吧!

client:500了

server:我看看,好像某段老代码异常。。

(半小时后)

server:我ok了你调用吧!

client:还是500

server:算了我重构下老代码。

(俩小时后)

server:我ok了你调用吧!

client:还是500。。你吖的把参数改了?

server:重构了嘛,按新的参数来调

client:这个接口ok了,那个又挂了

server:我都改了一遍参数,你也该改

client:搞个文档吧

server:有个线上故障我要紧急处理下

client:ok(然后泡个茶刷刷知乎)

(一小时后)

client组长:联调ok没?我们客户端要赶紧出新版,我怎么看你好像很闲

client:在等server给新文档

client组长:等个p啊赶紧给我搞完,不然绩效给你-1s

client:server快过来我们快速搞定接口啦,要死人啦

server:妈蛋故障还没处理完呢,我就帮你十分钟哈

server组长:故障排除了么?我们得服务要保证质量啊

server:在跟client联调稍后过来

server组长:联个p啊,赶紧给我搞定故障,不然绩效给你-1s

client&server:我真是日了狗了

调接口的精髓在于“等” 工作量就在调上啊。软件生产这东西为什么叫开发不叫制造,就是因为要不断试。 与某关联系统联调接口,
0约定联调的那一天,他们告诉我,刚开始开发,过两天再联调。
1接口文档他们可以改三版,每版的出参名字都不一样。
2说好的五个出参可以突然变成两个,告知存在缺陷以后,回退修复花了半天,又在临上线前两天,又只有两个出参了。
3AB两个接口调用顺序,国庆加班的时候已经告知,十天以后发现顺序还是错的
4上线验证的时候发现调用C接口的时候多调用了D,昨晚我就没睡踏实
大家都是做IT的,哼╭(╯^╰)╮ 不会是我老板问的吧 标准项目流程是这样的。

PM出项目需求文档和MRD -> PM联系相关人员进行MRD评审 -> 设计师基于MRD做设计图 -> 后端工程师根据项目需求和MRD、设计图出服务端接口文档 -> 前端工程师进行接口文档审核 -> 前后端工程师并行开发和独立自测 -> 前后端开发完毕后进行接口联调 -> 测试人员进行测试 -> 测试完毕发布上线 -> 线上服务功能回归

如果完全按照这个流程开发,每一步都进行的很好,自然是ok的。但是由于后端工程师对自己的自信,经常没有进行充分自测(甚至压根不测),导致前后端进行联调的时候,前端发现后端不可用,然后后端去修复问题,一来二去时间自然就没了(前端出问题,后端也不知道),项目就delay了。同样的,如果接口文档写的不清楚,导致前后端对参数的理解不一样,也会导致接口的修改或前端实现的修改,次数多了,项目也就delay了。

由于这种事情太常见了,所以一般联调的时间都包含了自测的时间,所以这个测试时间一加进去,联调时间自然就长了。

我不认为轮子哥的方法是好方法,术业有专攻,人的精力是有限的。即使一个人是全栈工程师,那他也是有更擅长的一项,再者,不同语言,不同端的开发都有自己的开发规范,经常轮换的话,会浪费大量的精力,而且切换语言开发也降低开发效率。再说了,一个大的项目不可能完全由一个人开发,只要是多人协作,就会出现这种问题,如果是修改同一个模块的代码,更容易出现问题,即使不是在联调阶段,在开发阶段出问题就不降低效率么?流程上的问题,就应该通过规范流程解决,而不是拆东墙补西墙的方式。 首先,假设你说的是调(二声)接口,而不是调(四声)接口。因为后者不存在什么工作量的问题。

之前有个问题答案说的是护照过期重办时遇到的问题,和调接口的问题一致。

假设小明(我方)现在要出国,需要办护照(业务需求)。

小明到公安局网站(接口提供方)上查询办证指南(接口文档),上面说办护照需要:
  • 一张照片
  • 身份证
这些材料(参数)。小明可以在网上预约(接口 1),能拿到一个预约号(接口 1 调用结果),然后可以去户口所在地的公安局办理。或者可以直接去公安局(接口 2),但是不一定当天能约上。

小明决定试试网上预约,结果网站显示“预约成功”(接口与文档不一致)。然后你想,好,成功了(我方疏忽)。

小明拿着照片和身份证去了公安局,结果公安局小妹手一摊:号儿呢?

啥号?

预约号啊?

没有啊?

没有不算,要不然你网上再约,拿到预约号,要不然你就现场约。(结果与预想不同,重来)

小明那一想,我就现场约吧。正要预约时,听到另一个工作人员跟小妹儿说最近系统在升级,可能还有些问题,还多人都预约了没拿到号(提供方在升级、重构)。小妹儿一看小明这可怜吧唧请一天假要被领导屌爆的样子,就算了,让小明今天就办(双方协商处理方案)。

小明开心了,拿出了照片和身份证,准备办证(调用接口 2)。

小妹一看,说:你这是什么?

照片……啊?

不行,你这不合规矩,护照照片必须标准化,A 像馆是我们专门合作方,你去找他们照相,数据直接传我们这来,带身份证来就行(第 2 个提供方)。

小明无语了。你们为什么在网站上不说清楚啊?

小妹说原来你去看网站,我们网站那是前年做的了,政策早就变了(文档没跟上)。

小明只好去 A 像馆。

A 像馆一听,哦,知道,你来照吧。然后照了,说,可以了,我给你上传到他们系统,你直接去就行。

小明又回公安局。

小妹:等下啊,今天网有点慢,照片一直没传过来(提供方之间的接口调用问题)。

等啊等,等到快下班了,终于传过来了。

小妹:好了,终于下载下来了,可以开始了。

小明长舒一口气。

小妹:等等,不行,我们系统提交通道关闭了。

小明:???

小妹:是这样,我们老大很爱我们,所以在设计办公系统的时候,要求还有半小时下班的时候就关闭业务通道,这样我们就可以整理下桌子,然后聊聊晚上去哪吃饭。

小明:???

小妹:不好意思啊,明天赶早吧。

小明只好第二天又去公安局。

小妹:真是不好意思,昨晚英镑暴跌,忽然来了两千多人要办护照去英国扫货。

小明:???

小妹:我们这个系统有点老,只要排队的人超过 255 个人就会死机(意外情况)。

小明:???

小妹:我们负责系统的人今天二婚,明天就回来。

小明:???

小妹:啥时候能修好,不知道啊。你明天或者后天打电话问下吧。

小明口吐鲜血。

============

调接口就是这样一个过程。

工作量和麻烦不外乎:

  • 供应方对于业务的描述不完整。其缘由可能是:1、没想清楚;2、懒或者没动力;3、升级或者业务改变之后没跟上;4、故意制造麻烦。所以,需要不停地去沟通,去反复确认,或者调用接口来看看结果是否符合预期。
  • 我方与各供应方,以及供应方与其他供应方之间出了合作问题,一个步骤的问题影响全局。这是经常发生的事情——我过单行道也会左右看,因为即便你能保证你自己做好,也没法保证别人能同样做好。其道理一致。所以,需要等,或者从中调和,或者想别的办法解决。

除了这些之外,接口在某些意外情况下会出现意外的问题(比如高并发之类),这也是需要调试的。

知道了这些之后,就会对秦始皇统一度量衡的壮举狂竖大拇指,因为他避免了不同标准和接口之间的沟通。全天下用同一个接口,沟通成本大大降低。

所以,调接口这件事,你是大爷,你就是调教接口,你是小弟,你就调整自己心态。

老大去包子铺问,你们这有没有汉堡?老板分分钟跑到对面麦当劳买个汉堡回来然后把馅儿换成鲜肉的笑嘻嘻地双手捧上来。这就没什么工作量,对方可以来适应你。

反之,你就只能自己去麦当劳买个汉堡,自己买个鲜肉包子把馅儿拆出来,忍受别人的白眼,默默把汉堡吃掉。

这工作量自然就大了。 就跟你去银行办卡一样 好在我们团队是js跑通前后端的,一个需求可以从migration文件写到前端效果。而设计师给的设计交付物是点一下图形就能取到相关css信息的展示页面,所以并没有扯皮的机会。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

解释PHP中晚期静态结合的概念。 解释PHP中晚期静态结合的概念。 Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

自定义/扩展框架:如何添加自定义功能。 自定义/扩展框架:如何添加自定义功能。 Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

See all articles