产品经理要是知道一些技术知识,在沟通和协调时团队效率会高很多。本文分享的API知识,能帮助大家更好与技术同学沟通,一起来学习下。
今天写一篇B端产品经理的 API 接口相关知识点,很多招聘岗位JD上都有要求产品经理能够实现跨系统的对接,尤其是现在做到 ERP 的产品包括国内的电商和国外电商都要求这一块作为一个能力上面来进行体现。看了网上一些资料,以及自身一些看法对这块做个概括总结,从 8个方面来展开。
①注意要测试环境和生产环境生产上线时候要提醒研发换到生产环境调用。
②注意必输字段和选输字段,要传入字段的含义和校验。枚举值不清楚含义的要询问对方含义,比如说单据类型字段枚举值是 B2C发货单,采购退货发货单等。
③ 注意唯一ID之间的关联,比如说我们订单系统的发货单号是 001,到 wms系统是否生成了一个新单号 A001,那发货回执时候wms要给 oms系统 001 单号。
④注意基础信息的映射,比如说仓库代码和对方仓库代码是否一样,商品编码和对方商品编码是否一样。如果不一样还要进行映射,那映射的工作是谁来做,
⑤ 注意行信息和明细(我们常说的 list)数据。哪些在行中,哪些在明细中,看的是单据和字段的关系,是一对一还是一对多,一对一就在行中,一对多就在明细中。比如说发货单只有一个发货仓,那么就是在行中,但是一个发货单有多个商品,那就在明细中。
⑥接口文档字段的校验,比如说发货单下发 wms,wms会校验商品是否存在,仓库是否存在等,这些校验服务于业务需要,比如说商品都不存在,我怎么发货呢对吧,所以双方系统的基础数据要对齐。
⑦同步方式:增量和全量。一般在做基础数据同步的时候,比如说商品档案,会员信息等,增是指的是增加的变动的推送给其他系统。
⑧接口文档常用的一些名词,面试的时候有的面试官会问到 ERP 接口,那我在这个时候怎么回答?
首先第一个问题接口对于主流做B端产品的像涉及到电商需要对接OWTB等多个系统平台是需要接口能力的。要比写需求文档难度上一个层次,PRD 里面涉及的的业务流,功能数据,所有界面和说明都是在这个环节要完成的但是接口文档在这里面的话是作为加分项,它会更加复杂一点,既要理解 oms平台系统是做什么的,你要理解wms系统做什么的,把这种系统流程图画出来,才能去理解说在这个过程中要去涉及对接系统的哪些接口。
那我们使用接口的2个场景:一个是前端开发工程师去调用后端的接口,另一个的场景的话是后端去调后端的接口。
首先我们要知道最基本的前提两个系统之间它是怎么去传递数据的,比如我熟悉的ERP,它是一个大系统,那 ERP 下面的话又会分为,采购系统,销售订单系统,库存管理系统,还有对接第三方的账单支付系统,那这个过程中就是整个单据处理的流程遇到的多个子系统,关系到数据之间是怎么传递的?这是后端与后端之间的一个对接。
还有一个是前端对接后端,所有涉及到的 c 端的界面,比如说开权限,所有在这个过程中看到的界面都是来自于后台在配置。C端的每个页面,不是写死的数据就是调用后台接口,包括日常淘宝购物的时候,这个商品详情页本质上就是前端开发工程师在调用后端开发工程师的接口,前端开发和后端开发中后台系统之间的一些对接。
再比如说简单的一个app提交订单的步骤,它其实需要通过订单系统创建待支付订单,这个时候有支付接口需要调用第三方的支付系统去完成支付,还有所涉及到的商品系统,库存系统,销售系统,以及最后获取物流触发的物流系统。它在整个订单的履单的过程中,点击提交订单步骤上就是前端开发工程师调用了订单的系统,后端开发工程师有一个叫创建待支付订单的结果,跳转到支付系统待支付订单创建成功之后,用户选择支付方式,支付系统会调用支付接口完成支付,支付系统知道支付完成后上报给订单系统,订单变成已支付待发货状态,那与此同时都有在做的事是他们之间会一个个去查这里面所有下单的商品有没有上下架?下架了这创建订单也会失败,这就是我们所涉及到的话,就是后台,后台的子系统之间调用来调用去。
大概有个认知之后,再说一下接口文档的形式和接口文档要怎么跟这个系统流程图来进行梳理?要明确一点,前台只要不是写死的数据,就是调后端的接口,跨系统之间所涉及的。那这种队列是怎么实现的?就是 API 接口,就是两个系统之间数据的传输,比如说订单只要把发货单下发下去了,人家仓库wms那边才能去发货,发完货后把结果告知我,那我在这个过程中知道我的始发的数量是多少件,这是通过接口告诉我的。
接口梳理了哈。
举一个例子:一个是调用支付接口,一个是某开放平台,大型公司都有自己的开放平台的,我是卖衣服的某平台,平台上完成的交易是不是要通过第三方比如微信支付宝去扣买家微信账户或者支付宝里面的钱嘞?那这个时候跨系统对接,我就要去调微信支付宝的接口,去找到这个平台的文档对接中心 ,那 API 接口里面有哪些东西呢?第一个就是接口名称,第二个就是接口上面什么场景下来进行使用?比如说我小程序上面的一个支付,那我进去就要找小程序上面的一支付就好了。 第三个接口请求的地址这一侧的话是开发比较关注的,请求参数,签名,这些东西全部都是开发的。
具体输入的参数里面应用上面的字段产品侧要去进行明确,接口名称,接口应用场景,请求参数里面看业务字段,请求参数里面我们所涉及到的,必填项的一些输入值。
一般来说是商务部门先对接接口的。订单号这块有个问题,就是订单系统产生的订单号,还是支付系统产生的支付单号?因为一个订单可以多支付的,一个订单所涉及到的发起了一次支付,但是用户等了两分钟他都没付,这个单子就会自动关单了,后面他又发起了一个支付,所以你一个订单是多笔支付单号在传的时候的话,更精准的应该传的是支付单号,而不是订单号。这些单号作为唯一的的条件,这个东西是千万不能搞错的。
我作为产品,我必须要去理清楚我们公司到底传的是什么单号,先不用在意选填项,在这个过程中我们主要的话要去看一下必填项,它在这个过程中会涉及到枚举值。什么叫枚举值?枚举值就是用于表示一组有限选项的数据类型,比如性别。
产品经理要去根据你的业务场景来进行限定,怎么来定义接口侧的正常和异常,所涉及到的接口失误错了,那仓库编码的话我们默认传的话是一般的数字,你传给我的这个仓库编码,我在我们系统里查不到,结果报错。这就是我们在输入项的时候的话,尤其是必传项,有没有按照我的规则来进行传?这接口接收失败,也会同步告诉你接口接收失败的原因是什么,那要是成功完了之后的话它会涉及到的输出参数,这个输出参数在你其他的一些的所涉及到的字段里面应该也会用到的,这个是需要去关注的,所以我们接口上面大概知晓一下重要项是输入输出。
那我们下一个问题在于,输入输出我怎么知道它的输入是什么?它的输出是什么?我怎么知道是我提供接口,还是我的另一个对接方来进行提供接口?
拿一个开放平台来讲一下业务场景,这个就是有 多个商家会入驻到这个平台上来进行卖货。所以的话我们在这个过程需要根据每个商家比如说他的输入参数会涉及到它的整体的请求参数,都是输入参数也就是会涉及到供应商编码也就是商家编码是什么?平台会分配给你的编码是什么?到底要什么状态?如果说接的订单是已审核状态,我要往下进行履单。要搞清楚拉什么时间段单子?接什么订单的类型?后续要送的哪个收货仓?因为不同的模式,包括的话收货地址这个要去看,包括我在这个过程中你订单有没有期望的送货时间,订单层级需详细到到底下单了哪一些商品的条码?需要的数量是多少?这个全部都有接口给到,因为商家就是拿着这一些输出到他们自己的订单系统里面,然后去对接下游的 wms 的系统和tms物流系统去发货,wms系统发完了货之后它还有一个接口就是发货结果告诉平台,可以很清楚的知道运单号是什么?发了多少数量?哪个供应商?对接的哪个渠道的物流?以及快递单号是什么?那产品侧只要去关注接口的名称,接口的调用是靠什么机制来进行调用,输入输出参数。
现在来说下要怎么知道是你给我接口还是我给你接口? 那首先第一个的话,在一般接口对接的时候,最起码我要知道我们系统负责做什么事情,别人的系统负责做什么事情。
①与公司业务人员沟通,与系统对接方产品/技术描述业务场景,沟通发放接口文档材料
②拿到材料之后 API接口过多请对方圈定一下接口,在场景上如果少接口则继续和对方沟通确认。
③看 API接口,不太清楚哪些系统进行调用可以将材料发放研发团队一起査看沟通,比如哪些接口是前端商城研发调用,哪些接口是支付系统调用。在输入值时如果涉及到要查别的系统数据,这个要在流程图中进行说明。
④看 AP接口,接口的输入输出,尤其针对枚举值,选输必输进行进一步确认。对于必输字段并不懂的输入的业务含义和对方确认,和自己的业务方确议。
⑤绘制系统流程图与AP|接口清单,梳理功能点,绘制原型和写 PRD 文档。【要考虑正向和逆向,逆向取消,逆向售后。是否存在修改场景?
⑥PRD 文档中增加与外对接 API接囗对接的输入输出逻辑说明。
⑦开发和测试环节对接过程中存在疑问继续跟踪。如果对方还在开发的接口项目管理同学要跟踪进度。测试进行联测,对方测试人员要进行配合看数据。当然如果测试可以自己看到别人系统后台那要去看其他系统后台的数据。
⑧上线研发要换成生产环境的测试地址,和对方提前沟通上线时间和上线顺序,上线时是否要留相关人员。
第二是我怎么知道有这么多的系统上面对接的接口?那还是一样的你要知道你的系统里面做什么事情,别的系统里面做什么事情,你的系统存了什么数据?别的系统存了什么数据,你才知道我什么时候要找别人的系统来进行合作?那怎么去判断呢?正常系统是有自己的规范,所涉及到的其他行业也有其他系统上面的规范。一个刚入职的产品需要接手,那首先就是看后台,比如说订单管理里面有哪一些的字段,商品管理里面有哪一些的字段,这个系统里面存了什么数据,有所涉及到的接口的,要去梳理接口上对接,注意区分接口提供方和接口调用方。
接口梳理规则:
①前端(app 或者小程序或者 h5 页面等)调用别人系统的接口
②同步:同步指的是实时得到结果。异步:实时得不到结果,比如订单系统把发货单下发wms系统,wms系统只能给到接收成功或者失败,等到仓库发完货才调用 订单系统接口告知发货实际的结果。订单需要多增加一个接口 接口发货回执。
③一般从数据上下游传递数据下游方,上游方调用下游方接口。箭头指向谁,谁提供接口。数据流转方向绘制箭头,一般是推送,但是如果1个上游方对接 N 个下游,上游方会定义接口,改为下游拉取上游接口。
④考虑逆向流程:【要考虑正向和逆向,逆向取消,逆向售后。是否存在修改场景?】
接口文档常用名词:
①同步和异步。同步指的是同一时间处理,异步指的是不能实时处理,处理完结果再告知结果,会新增接口对接。
②拉取和推送,一般接口遵从谁是数据上游方,推送给下游,但是如果1个上游方对应N个下游方,这个时候上游机会提供拉取接口,下游都来拉数据。这样因为减少上游方开发工作量。
③上报联调,跨系统对接时把接口调通。
④Mock。有时候上下游没时间和开发联调,这个时候开发可以造数据自己先调。一般开发用postman工具 mock接口。
⑤调用地址/URL。生产环境测试环境
⑥API接口和 MQ都是跨对接方式,MQ【消息队列/消息中间件】可以用于内部系统对接非实时部分,具体看研发设计。
最后提一个面试题,很多面试官会问:和第三方系统对接时要做哪些产品工作?
①在业务正向和逆向流程调研完成之后校理系统流程,核理对接的AP1接口清单:我们需要调用三方哪些接口,三方需要调用我们哪些接口。
②在产品设计时和三方沟通接口输入输出字段,写进PRD的接口传值说明中。
③产品需求评审之后研发提测,测试测试,上线时间等项目计划同步三方,研发测试上线协调三方配合相关任务。
④上线之后问题和需求跟踪判别,如果涉及到三方系统的和三方产品进行沟通。
本文由 @产品速心丸 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务