最近团队招测试,我前后面了二十多个人,发现一个很普遍的现象:简历上都写着“熟悉接口测试”,但一问到“你们项目里有哪些接口、各自测什么、怎么设计用例、出问题怎么排查”,大部分人答得很浅,基本停留在“用工具发个请求、看返回码”这种层面。
这不是个别现象,是接口测试入门容易、做深难。
接口测试几乎是所有业务项目测试的核心抓手,也是面试必问的模块。这篇就把我在几个真实项目里摸爬滚打整理的接口清单、测试要点、面试问题和回答思路一次性梳理出来,内容全部围绕“可直接参考”来写,你要准备面试也好,要梳理自己项目的测试体系也好,都能对着用。
1. 项目测试中的接口分类与盘点
先盘清楚一个问题:一个业务系统到底有哪些接口要测?
我见过太多测试新人拿到项目文档就开始无脑测登录和注册,测完就觉得完事了。实际上一套完整的业务系统,接口数量少则几十个,多则几百个,完全没必要也没可能每个都投入同等精力,但你必须做到心里有数,知道哪些是核心链路、哪些是高危接口、哪些属于第三方联调。
1.1 按业务模块拆分接口清单
我这里以一套最典型的电商类项目为例(换成金融、教育、企业管理系统逻辑完全通用,只是业务字段不同),拆解一下主要业务模块里会涉及哪些接口:
| 业务模块 | 常见接口类型 | 测试关注重点 |
|---|---|---|
| 用户与权限 | 注册、登录、验证码发送、Token刷新、用户信息查询/修改、密码重置、权限校验 | 参数校验、会话有效期、越权访问、密码加密逻辑 |
| 商品中心 | 商品列表、商品详情、SKU查询、库存扣减、类目树、价格查询 | 分页边界、缓存一致性、并发库存、数据权限 |
| 订单中心 | 创建订单、订单列表、订单详情、订单状态流转、取消订单、修改地址 | 状态机流转、幂等性、金额计算、超时处理 |
| 支付相关 | 下单支付、支付结果查询、退款申请、退款查询、支付回调、对账单 | 签名验签、回调重试、幂等、金额精度 |
| 营销活动 | 优惠券领取、满减计算、秒杀、拼团、活动配置 | 并发、防刷、限流、规则边界 |
| 物流售后 | 发货、物流轨迹、签收、售后申请、退款进度 | 状态一致性、异步消息、外部接口稳定性 |
| 消息通知 | 短信发送、站内信、App推送、邮件 | 频控、模板变量、失败重试 |
| 数据分析 | 用户行为上报、报表统计、看板数据 | 数据准确性、批量任务、采样率 |
这里面有几个容易漏测的点我要重点说一下。
首先是库存扣减和订单创建之间的接口一致性。很多项目是库存服务独立部署,用户在商品页看到的库存来自商品服务,下单时扣减走库存服务,这两个接口如果不在同一套数据库下,就会出现“页面显示有货,下单提示无货”的真实问题。测试时不能只测单个接口,必须串联场景验证。
其次是支付回调。这个接口通常不是用户直接调的,而是支付渠道服务器异步调用我方系统,很多团队把它归为“第三方接口”就不测了,结果上线第二天订单状态全部没更新。回调接口的测试重点在于:重复回调、乱序回调、回调参数被篡改、回调超时后是否触发主动查询。
还有一类是内部管理端接口。这类接口给运营后台用,很多接口没有做严格的权限控制,比如一个普通运营账号能直接调接口把商品价格改成0.01元。测试时要注意水平权限和垂直权限的区分——水平权限是A用户能不能操作B用户的数据,垂直权限是低级别角色能不能调用高级别接口。
提示:整理自己项目接口清单时,不要只从后端接口文档里抄。正确的是先拉业务流程,从注册到下单到收货到售后画一遍全链路图,每个环节标注调用了哪些接口,再对照接口文档补漏。这个习惯能让你发现很多“文档里有、但业务上根本走不通”的野接口。
1.2 按技术属性拆分接口类型
业务模块是“测什么”的问题,技术属性是“怎么测”的问题。同一个业务模块里,不同类型的接口测试方法完全不同。
第一类是HTTP RESTful接口。这是最常见的,基于JSON传输,有明确的请求方法语义:GET用于查询、POST用于新增/提交、PUT用于全量更新、PATCH用于部分更新、DELETE用于删除。测试时要关注方法语义是否被正确实现,我遇过有些后端图省事,删除也用POST,甚至查询也用POST传JSON体。严格来说这不算错,但约定俗成的规范被破坏,会给后续排查问题带来麻烦。
第二类是RPC接口。内部服务之间调用常用,跟HTTP接口最大的区别在于:它通常不经过网关,没有统一的日志入口;参数序列化方式不同,常见的是二进制协议。测试这类接口不能只依赖接口文档,还要结合服务端的调用链日志去确认数据是否到达、返回是否符合预期。这类接口的问题往往是“调用成功但数据没落库”这种隐性故障。
第三类是第三方外部接口。包括支付、短信、地图、物流等。这类接口最大的特点是你无法控制对方的返回,联网测试不稳定。成熟的团队会做Mock方案,搭建一套可配置的模拟服务来模拟第三方各种返回值。测试重点是异常分支:超时、返回非标准报文、响应慢、彻底不可用。
第四类是异步接口。发起请求后立即返回受理成功,真正处理结果通过消息队列或者回调通知。比如提交审核、异步导出、批量处理任务。这类接口不能只看第一次返回,要持续轮询或者监听回调,验证最终结果状态。特别要注意重复提交的问题,用户连续点两次提交按钮,后端是否做了幂等处理。
第五类是定时/批量任务接口。比如每天凌晨跑的对账、统计报表、优惠券过期扫描。接口本身可能是内部触发的,但业务结果对外暴露,测试时要能手动触发任务,并构造边界数据(比如正好过期1秒的优惠券)去验证处理逻辑。
把这些类型的测试方法搞明白,去面试聊接口测试思路时才会显得有层次——很多候选人面试时只能说“我用Postman测了登录、支付这些接口”,但你说出来的是“项目里还有异步回调、定时任务、第三方Mock这几类接口,分别是这样测的”,差距一下就拉开了。
1.3 接口用例设计的基本维度
不管什么接口,用例设计都脱不开这几个维度:功能、逻辑、异常、安全、性能。
功能层面最简单,就是正常的入参出参验证:参数类型对不对、取值范围是否正确、必填项是否校验、字段长度限制是否生效、返回结构是否符合约定。有一点容易被忽略,返回报文里的额外字段也要纳入校验范围——有些接口会返回用户手机号、身份证号或者内部ID,这个属于敏感数据泄露隐患,测试用例里必须加一项“检查返回数据是否包含非必要敏感字段”。
逻辑层面重点测状态流转和依赖关系。比如订单状态机:待支付、已支付、已发货、已完成、已取消、售后中,要验证每个合法流转和所有非法流转(比如已取消订单不能直接变成已发货)。还有接口之间的依赖,比如删除商品后,购物车里这个商品应该怎么展示、订单里快照是什么,都属于逻辑测试范围。
异常层面的东西最多也最容易漏。接口响应超时、服务端500、网络中断、请求参数被截断、并发请求同一资源、重复提交、断网重发,每个都要有对应用例。很多人习惯只测“正常包”和“错误包”,但接口测试的价值恰恰在于把异常场景提前暴露出来——UI测试里这些场景很难模拟,接口层面几分钟就能跑完。
安全层面的测试包括:身份认证缺失、越权访问、SQL注入、XSS注入、参数篡改、数据加密传输。日常项目中不需要做到渗透测试那么深,但基本的安全用例必须有,尤其是越权和敏感信息泄露这两个点,面试时问接口测试很容易被问到。
性能层面在功能测试阶段不用做全,但核心接口要做基准测试:单用户响应时间、并发用户下的吞吐量、数据库连接池是否被打满、慢查询是否出现。典型接口比如秒杀、下单、登录,这些高并发场景如果等上线后再测性能,代价就高了。
2. 核心接口实操要点
接口分类是脑中的地图,真枪实弹去测的时候,有几个模块值得单独拆开细讲。这一部分如果你能完全消化,不管到哪个项目,接口测试的底子就算打牢了。
2.1 登录认证类接口的测试细节
登录是几乎每个系统的第一个接口,也是最容易被“觉得简单”而忽视的接口。实际上登录接口的坑最多,因为它关联着整个会话体系。
先说登录方式。现在主流的有账号密码登录、手机验证码登录、第三方授权登录(微信、支付宝、钉钉)、token自动登录。每种方式的测试重点不同。账号密码登录重点看密码加密传输、错误次数限制、验证码校验;手机验证码登录重点看验证码有效期、发送频控、同一验证码重复使用限制;第三方授权登录重点看回调地址校验、授权码一次性使用、用户信息一致性。
然后是会话机制。前端拿着token调接口,token有效期一般有短期(比如2小时)和刷新token(比如7天)。要测的场景包括:token过期后访问接口返回什么、刷新token过期后是否要求重新登录、同一账号在多个设备登录时token怎么处理(互踢还是共存)、用户退出登录后token是否立即失效。这几个场景不做全,线上就会出现“退出登录后,拿旧token依然能调接口”的安全漏洞。
我实操中踩过一次比较典型的坑:某项目登录成功后,后端返回token、用户ID、昵称,但token的有效期在文档里写的是2小时,实际测试发现过了5小时token还能用。最后排查是Token生成服务的时间源配置出了问题。所以登录相关接口测试,过期时间的验证不能只读文档,必须实际等到过期时间再验证。短期token等不了那么久,可以配合修改系统时间或者用测试环境的后台功能缩短token有效期来测。
密码安全也是重点。请求日志里不能出现明文密码,数据库里存的必须是不可逆加密后的密文,登录接口的返回报文里不能回显密码甚至密码的密文。这些看起来是开发规范,但测试要主动去查——用抓包工具看一眼请求体和响应体,问题一下就暴露了。
2.2 支付回调类接口:幂等、验签、乱序
我把这类接口单独拎出来说,是因为它的业务价值最高,出故障的代价也最大。支付回调是支付平台异步通知业务系统的接口,它跟用户主动发起的请求有本质区别:用户的请求失败可以重试,但支付回调如果处理失败,用户付了钱但订单没更新,会产生客诉甚至资损。
测试支付回调接口,三件事必须做透:验签、幂等、乱序处理。
验签是安全的第一道门。支付平台在回调时会把参数加上密钥做签名,业务系统接收到回调后要用同样的规则重新计算签名进行比对。测试时要去掉签名参数、篡改签名值、篡改业务参数,验证系统能正确拒绝非法请求。很多团队只在联调时测了正常返回,签名校验的各种异常分支根本没测。
幂等处理的是重复通知的坑。支付平台为了保证通知送达,会按一定频率重发回调,可能间隔几分钟、几小时甚至一天。业务系统必须做到:同一笔订单收到10次回调,最终结果跟收到1次回调一致。测试方法就是重复发送完全相同的回调报文,然后去查订单状态、流水记录、通知记录表,确保没有重复加钱、重复改状态。再扩展一步,两个相同订单号、不同金额的回调同时到达,系统应该以哪个为准——这个属于对账层面的设计,也要通过用例来固化。
乱序处理更隐蔽。比如用户下单后先发起退款,退款结果回调先到,支付成功的回调后到,系统如果按照固定流程处理就出问题了。还有极端的场景:订单已关闭,支付成功回调才到达。这些场景需要测试时主动构造消息队列的乱序投递,或者配合研发用MQ的延迟插件去模拟。这一步测不测,直接影响线上资损率指标。
验签通过后,测试还要关注回调处理是同步的还是异步的。同步的话,响应超时会不会导致支付平台反复重发;异步的话,回调消息进了MQ后消费者挂了,消息是否会重试、是否会产生重复消费。这套链路测试完,才算闭环。
注意:支付回调类接口测试,不要直接用生产支付渠道的沙箱环境做全量覆盖。沙箱环境不稳定且只能模拟固定场景,正确做法是用Mock服务搭建一套可编程的模拟支付回调平台,把成功、失败、重复、乱序、超时、篡改全部参数化,这样才能在测试环境反复跑。
2.3 异步任务和消息类接口的处理方式
消息类接口在项目里的占比越来越高,很多操作从同步变成了异步。用户体验上这是好事,但对测试来说增加了看不见的复杂度——你不知道异步任务什么时候执行完,也不知道它执行到哪一步了。
举一个具体例子:用户提交一个批量导出订单的请求,接口立刻返回“任务受理成功”,然后后端慢慢生成Excel,完成后通过站内信通知用户。这个场景怎么测?
第一步测受理接口本身:参数校验、权限校验、重复提交处理、返回的任务ID是否生成。第二步测任务执行:轮询任务状态接口,看到底是处理中、成功还是失败,执行耗时是否在预期范围内。第三步测结果数据:下载导入的Excel,逐行核对数据跟查询接口返回的数据是否一致。第四步测异常恢复:任务执行了一半,服务重启了,这个任务的中间状态怎么恢复,是否会重新执行导致数据重复。
这一整套下来才能算测完了异步接口,很多人只测第一步就草草收工,等于白测。
异步批量任务还有个特点:测试数据必须构造出“部分成功部分失败”的场景。比如批量导入1000条数据,其中10条格式有误,系统应该返回成功988条、失败12条,并且给用户提供失败明细下载。这种场景如果不提前构造,等数据真的出错时连排查都无从下手。
再讲消息通知接口。短信、推送、邮件这类接口的测试重点不是“能不能发出去”,而是:发送内容和触达策略是否正确(订单状态变更后,通知里包含的订单号、金额、物流单号是否准确)、是否受频控限制(同一手机号一分钟内收几条)、是否做了模板变量转义(用户昵称里带了个单引号,短信模板拼接后会不会断)。这些细节测起来琐碎,但漏掉任何一个都是线上客诉点。
2.4 工具选型和自动化框架的基本逻辑
工欲善其事必先利其器,但选工具这件事我劝你不要盲目追新。团队规模、项目类型、已有基建,才是决定因素。
接口调试阶段,团队用最广泛的还是Postman和Apifox这类工具。我个人的建议是:个人调试用Postman没有太大问题,但如果你们的团队要共享接口文档和调试环境,优先选Apifox这种接口文档和调试一体的工具,省得接口文档更新了调试环境没人同步,两边不一致自己坑自己。
抓包分析阶段,Charles和Fiddler选一个用熟就行。移动端App测试必须会配HTTPS代理抓包,包括安装证书、解决证书校验失败的问题、抓WebSocket的包。这个技能是硬功夫,项目一旦需要联调App端接口,没有这个能力寸步难行。
自动化框架层面,主流的方案是Python + Pytest + Requests + Allure,Java那边常用TestNG + RestAssured。工具不重要,重要的是框架分层思路清楚——把接口测试框架至少分成四层:测试数据层(Excel/YAML/JSON管理测试数据)、接口封装层(把每个接口封装成可调用的方法)、用例层(按业务场景编排用例)、断言层(状态码、业务码、数据库、日志多层断言)。
再往下走就是持续集成。现在稍微正规点的团队,接口自动化用例都要接入流水线,每次代码提交自动跑一遍冒烟接口测试。有条件的话再加一个全量回归的定时任务。这个链路搭建起来,测试的价值和存在感完全不一样,面试时聊到自动化,直接拿出这套架构说,比说一百句“我会写脚本”都有说服力。
3. 面试:接口测试常见问题与回答思路
面试这一块,我在面试官和被面试两个角色上都坐过,总结下来接口测试的高频问题基本固定。这里给出问题列表、典型错误答法和建议回答方向,你可以针对性地准备自己的版本,不建议死记硬背,理解思路之后用自己的话讲出来效果最好。
3.1 基础认知类:接口测试到底测什么
面试官问这个问题,重点考察你有没有完整理解,而不是背书。
很多人的回答是“用工具调接口,看返回对不对”,这个回答太片面,只能拿及格分。完善的回答维度是:
- 功能测试:接口的入参出参、业务逻辑、状态流转正确性
- 异常测试:超时、重试、并发、停机等异常场景下的表现
- 安全测试:身份认证、越权、注入、敏感信息校验
- 性能测试:响应时间、吞吐量、并发下的稳定性
- 兼容性测试:不同协议版本、不同客户端版本下的表现
面试官问这类问题,不一定指望你说得多全,而是看你这几个维度里有没有任何一个维度说出“我在项目里遇到过一个什么具体问题”,这是区分“做过”和“背过”的分水岭。比如你讲:“之前测订单接口的时候发现并发下单时库存扣成了负数,后来排查是扣减库存的SQL少了条件,我就养成了一个习惯,接口测试用例必须覆盖并发场景。”这个回答就非常有说服力。
3.2 场景设计类:给你一个接口,你打算怎么测
这类题常驻题库,比如“给你一个订单查询接口,说说怎么测”。看起来简单,实际是考察系统性的用例设计思维。
低分回答是逐条念字段校验:“订单号必填、类型校验、长度校验……”围绕单接口做文章,只能算及格边缘。
高分回答要有层次感:
- 先说功能用例设计,参数组合、边界值、权限校验
- 再讲业务场景串联,比如订单查询要和创建订单、支付订单串联成一条业务链路来测,查询结果跟实际业务状态一致才叫对
- 然后讲异常场景,比如分页查询最后一页越界、订单数据被删除后还能不能查到、订单状态为“已取消”时查询是否还返回详情
- 最后讲专项测试,比如大数据量下查询响应时间是否达标、高频查询是否影响其他接口性能
再补充一句:测试这个接口,我会先去翻需求文档明确它的使用方,是C端用户、内部运营还是第三方系统。不同使用方的测试侧重点不一样——C端用户更关注数据安全和响应速度,内部运营更关注字段完整和批量操作能力,第三方系统则更关注协议兼容性。这句话一出来,面试官会觉得你真的做过项目,而不是只背了面试题。
3.3 深度原理类:Cookie和Token的区别是什么
这个基础问题翻车率出奇的高,很多人把“有状态/无状态、存储在客户端/服务端”说出来就算完,其实面试官想听你对“为什么会有这两种机制”的理解。
比较好的回答路线:
- Cookie是服务器发送给浏览器的一小段数据,浏览器会自动携带,适合传统的服务端渲染页面场景,服务端可以通过Session把用户状态存下来
- Token是服务端签发的凭证,本质是一段经过签名的字符串,客户端在Authorization头里携带,服务端无状态校验,适合前后端分离和移动端场景
- 关键区别在于:Cookie方案要求会话状态存储在服务端,水平扩展时要解决Session共享;Token方案服务端不存会话,但要做好过期、刷新和吊销策略
- 再从测试角度补充:Cookie测试要关注过期时间、作用域、HttpOnly属性,Token要关注有效期、刷新机制、注销后是否立即失效、是否泄露在URL或日志中
这个回答逻辑清晰,既讲了原理又落到测试实践上,面试官很难不给高分。记住一个原则:原理题的回答,落脚点永远是“对测试意味着什么”,这个角度最稀缺。
3.4 框架和工程化类:怎么设计接口自动化框架
这个问题在大厂面试问得多,普通公司面试也可以主动展示。回答思路可以参考我在2.4里说的四层结构,但更核心的是要讲清楚设计原则。
第一要分层:数据、接口、用例、断言分开,避免用例里堆满代码。第二要可配置:环境地址、账号数据、开关配置全部独立出来,环境切换不用改代码。第三要可复用:公共方法抽取,不同用例之间可以组合出不同业务链路。第四要可观测:失败日志要能定位到具体是参数问题、断言问题还是服务问题,报错信息要可读。
加分项是你能说出框架的进阶设计:全局请求拦截器统一加Token和日志;接口依赖处理机制(A接口要用B接口的返回数据,怎么动态传参);用例执行失败自动重跑机制;以及可视化报告和告警推送。把这些说出来,面试官基本就能判断出你是有真实落地经验的,而不是只在GitHub上看过开源框架。
接下来是一个开放式问题,面试官专治“没做过但说做过”的人:线上有一个接口突然大量报错,你作为测试怎么排查。这里不要急着说复现,回答思路应该是:先看监控大盘确认影响范围(报错量、错误码分布、耗时变化),再翻服务日志和网关日志定位异常请求的特征,根据特征构造最小复现用例,然后配合研发在测试环境验证修复,最后补测试用例防回归。这个链路走下来,思路严谨有条理,和那种只回答“让研发看下日志”的候选人高下立判。
4. 接口测试中的坑与排查实录
最后这部分,记录几个我实际踩过、也带新人时反复强调的典型问题。这些坑在教科书上很少写,但项目里极其常见,你提前看一遍,遇到的时候就不慌了。
4.1 回调接口偶发失败,排查思路是什么
有一次项目上新支付渠道,测试环境一切正常,灰度环境出现偶发订单状态不更新。初步看是回调接口收到请求但返回了500。比较诡异的是成功率在90%左右,剩下的10%不是同一批订单,也不是同一时间段。
大家的直觉反应是查服务日志,结果服务日志没有明显的异常堆栈。后来逐条对比正常请求和异常请求的入参,发现异常请求都带了一个共同的脏数据字段——某个用户昵称里含有emoji表情,而回调处理逻辑里有一个环节把这个字段拼进了日志和数据库,导致SQL插入时报编码错误。测试环境没复现是因为大家习惯性用纯文本用户测试数据,而真实用户数据无所不有。
这个坑的教训是:接口测试用例的测试数据要覆盖特殊字符、超长字段、Unicode表情、HTML标签等边界输入。尤其是第三方回调场景,你完全控制不了对方传什么,不能拿自己的数据洁癖去假设上游的规范程度。
4.2 接口返回成功,前端偏偏说报错
这个问题的底层逻辑不复杂,但排查的时候经常绕弯路。接口状态码200,业务码也返回成功,但前端页面弹窗提示“系统异常”。定位了很久发现前端拿到的JSON结构里,某个节点名跟后端约定对不上,后端返回的是user_name,前端读的是username,解析结果为undefined,前端框架抛异常就弹窗了。
这类问题接口测试层面很难完全避免,因为它不是接口本身逻辑错误,是前后端契约不一致。但测试可以在接口层做一道防线:写断言不只看状态码,还要校验响应体的完整结构,包括字段名、类型、嵌套层级。我后来在项目定的规范是——核心业务接口的自动化用例里必须加Schema断言,结构不符直接判失败。有了这层防护,这种联调问题就能提前在测试环境暴露,而不是等到线上被用户发现。
4.3 自动化测试用例偶发失败,是测试代码还是服务端问题
接口自动化跑起来之后,最大的痛点是不稳定。用例昨天全绿,今天挂了三四个,重跑一遍又全过了。这种“偶发失败”最消磨团队对自动化的信任。
我用排查办法是三步走: 先把失败请求的完整报文和响应报文拉出来,看是不是同一个接口、同一个参数; 再来判断是否涉及时间相关逻辑,比如测试数据用当前时间戳生成的,缓存过期时间比预期短,凌晨跑的用例和后端定时任务冲突了; 最后检查是不是并发导致——多条用例同时跑,共享了同一个测试账号,A用例改了用户资料,B用例正在断言这份资料,就出现脏读了。
最后这个场景是重灾区。接口自动化用例执行必须做到数据隔离,原则是一个用例一个独立数据,或者至少互不干扰的数据集。共享账号的自动化用例,跑起来迟早出幺蛾子,这不是运气问题,是设计问题。
4.4 接口测试和UI测试的覆盖边界怎么划
这个问题在项目里会反复出现。接口测试已经覆盖了,UI测试还要不要做?答案是分工不同。
我的实践经验是:接口测试负责验证“功能逻辑正确性”,UI测试负责验证“用户可操作性”。简单理解——接口测试能告诉你支付功能逻辑是对的,但按钮能不能点到、页面加载慢不慢、异常提示友好不友好,接口测试完全不知道,这必须UI来管。
合理分工的参考标准:公共基础功能(登录、注册、用户信息)接口和UI都覆盖,但UI只跑主流程;业务核心链路(下单、支付、退款)优先保证接口自动化覆盖,UI冒烟每天跑一遍核心路径;异常场景、边界场景和并发场景,能下沉到接口层的就尽量下沉,UI层做展示和交互验证。这个分工逻辑成熟之后,整个团队的测试效率和稳定性会明显上一个档次。
另外补充一句关于接口测试和验收测试的配合:接口测试跑得再全,最终用户看到的是页面,建议接口自动化每条核心链路都对应一个UI冒烟用例,两边同时跑,缺一不可。
最后再分享一个面试技巧
说回到开头那个场景。如果你正在准备面试,我的建议是:不要背问题答案,而是把你当前项目里的接口清单拉一张表,按我第三部分的维度整理一遍,然后对着镜子用自己的话讲出来。面试官最想听到的就是“你这套东西是你们项目里真实验证过的”,而不是“我在网上看过这样的题”。
接口测试这条路,入门靠工具,进阶靠思维。工具一两周就熟了,对业务的理解、对异常场景的敏感度、对数据一致性的较真,才是干得越久越值钱的部分。把自己经手的每一个接口都当成一次学习机会去研究,成长速度不会慢。