在产品开发过程中,当涉及到前后端数据交互的时候,基本离不开接口的调用,常常听到开发提到这个接口还没有调通呢,还需要一定的工作量。
对于刚接触产品工作的新手而言,可以会一脸懵逼:什么是接口,为什么接口调试的时候要花费大量的时间啊。我不是技术,我怎么清楚开发这个功能需要多少接口,需要联调哪些东西呢。
最近刚好碰到联调接口的问题,于是我将有些日子没接触开发文档的阅读内容又捡了起来。对于产品经理而言,我们没有必要了解技术怎么进行接口联调,但是能够阅读基本的开发接口文档是非常有必要的
今天大寸老师从什么是API接口、接口分类、API接口文档内容、阅读API文档有什么用四个方案来谈谈我眼中的开发接口。
一 什么是API接口
API,全名Application Programming Interface,翻译过来就是应用程序编程接口。百度词条的定义是:API是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
哎,太专业了,大白话解释一下。
API可以类比是一个传输数据的通道,入口时需要请求数据,出口需要返回请求的接口。接口的使用方式不需要关心接口是如何实现的,只关心是否得到最后的返回接口。
来自:百度图片
举个例子:在支付宝买火车票时,你选定了时间、地点搜索车次,后台会调用搜索接口传入时间、地点等参数,接收列车类别、价格等参数,然后在前台页面上进行排列展示。
二 接口的分类
接口的分类很多,平时遇到的接口类型主要分为以下两类
1 根据相应机制分为同步接口和异步接口
同步接口:当A系统在向B系统接口请求之后,必须等到B系统接口的相应后才会执行下一步的操作。
例如:登录操作调用第三方平台接口(如QQ)进行登录时,需要跳转到QQ进行验证并返回验证结果之后,才可以登录成功。
异步接口:当A系统在向B系统接口请求之后,不需要等到B系统接口的相应后才会执行下一步的操作。
例如:在支部宝中给余额宝进行充值时,不需要等待银行付款成功后再开始下一笔的充值。此时,支付宝已经验证了用户的银行账户,确认了双方交易的合法性就可以结束这笔操作了。这时,我们看到已经充值成功,其实银行可能还没有进行扣款,但是支付宝后台会将这笔交易流水传递给银行,在银行验证成功后再进行扣款、付款操作。
2 根据接口的触发形式分伟分发接口和订阅接口
分发接口:一个系统产生数据的时候就分发给其他系统(可能是多个)。
中台系统的核心思想是高内聚、低耦合,所以分发接口的使用场景是很多的。例如有一个主渠道系统来管理所有渠道的数据,而渠道数据是其他系统例如商品系统、订单系统、促销系统也会用到的信息。当主渠道有内容更新时,需要分发给其他对接的各个系统,实现最新渠道的功能拓展。
订阅接口:一个系统在需要的时候调用另一个系统的接口进行数据订阅。
例如订单系统生成订单时,有很多其他的系统可能需要及时获取订单的状态信息,但是订单系统并不知道要分发给哪些系统。此时往往会将订单信息推送至特定的消息队列,其他需要订单信息的系统会订阅这个消息,就可以及时获取订单的状态信息,进行下一个动作了。
来自:百度图片
三 接口文档内容
如何调用接口,接口文档做了明确的说明,以腾讯接口文档举例说明,其主要内容包括以下几点:
1 功能说明:这个接口是用来干什么的,以及相关的规则
举例:用户点击按钮选择“购买”后,应用调用该接口发送请求,以获取本次交易的token,以及购买物品的url参数。
2 接口调用说明
(1)URL地址
以网址的形式展示,你通过发送请求给这个网址来对接口进行交互操作。
(2)格式
Json
(3)HTTPS请求方式
通常所说的http传输方式有四种:get、post、put、delete。简单来说,一个URL地址,用于描述一个网络上的资源,get、post、put、delete对应着这个资源的查、改、增、删四个操作。get一般用户获取资源信息,post用来更新资源信息。很多时候,都可以通过get或者post来完成增删改查四个操作。
来自:百度图片
(4)IP限制
true
(5)输入参数说明
各个参数请进行url编码,编码时请遵守RFC1738,参数属性包括名称、类型、是否必填、描述等内容。
来自;百度图片
(6)返回参数
接口正常相应后,返回的内容
(7)错误代码
接口请求失败后,返回的错误代码,方便开发人员定位问题原因
四 阅读API文档有什么用
掌握API接口文档基本知识可以让我们对技术理解更深刻,可以结合新接口,让产品的开发更具可行性,降低工作量,也能够更好的预估开发的工作量,制定合理的产品方案。当然,最重要的是能够方便我们和程序猿的沟通,减少程序猿对产品的吐槽——这个产品连接口都不知道,竟然给我安排这么点时间,产品万一出了问题,我可以不背锅。
1 深刻了解技术,让沟通跟顺畅
可以让产品经理明确各个系统之间的数据流转,尤其是做后台产品的产品经理,在知道了功能设计的目的,需要对外提供什么样的接口服务,设计产品的时候才可以更加全面。在工作过程中不仅能够站在产品设计的角度上看待问题,同时也可以从开发的接口来评估产品,有利于产品经理和开发人员顺畅沟通
2 合理安排开发工作量
在了解了接口文档之后,能够准确地掌握开发的工作量,而不是局限于自己的产品功能,同时在安排产品开发的郭晨中能够统筹考虑周边系统联调的时间,这样计划安排才会更加合理。同时也可以识别项目中的关键风险点,尤其是一些关键接口,数据量需要压测的接口,需要今早安排联调和测试,并且对周边需要配合的项目提出要求。
来自:百度图片
总之,掌握阅读API接口文档能力,对一个产品经理来说是一个非常有意义的事情。无论站在产品设计的角度还会从和技术人员高效沟通的方面,甚至从提高产品经理的自我修养来看,都是锦上添花的事情,会给你一定的帮助,能够让你设计产品时从全局思维触发去真正打磨出一款好的产品。