4个要点,编写一份接口需求文档
在产品设计工作中,或多或少都会需要用到接口,特别是业务导向性的系统,接口几乎是必不可少的功能。那么什么是接口?如何写一份能准确表达业务需求的接口需求呢?
百科上为对接口的定义:API(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解最高层工作技术细节机制的细节。
要理解接口是什么,首先理解一下为什么要用接口?
两个独立的系统,它们的数据或程序是独立的,这就使得它们无法直接访问对方的数据库或程序(两个独立数据库相当于两个独立的家庭,每个家庭肯定是不允许外人随便进入的,否则会发生偷窃等后果严重的事件)。但是某些业务场景下,独立的系统之间又必须相互关系相互共享数据或共用一套程序逻辑,如统一业务流程上的不同业务操作系统,下游系统的业务依赖于上游系统的数据。
既然如此为什么不把它们设计成一个系统,这样不就没有上面不是的问题了吗?
这是因为有的业务流程很长很复杂,如果设计成一个系统内,整个网络系统变得很庞杂,不论是功能设计、开发维护都很难。因此一般都会把虽然有上下游业务关系但又有清晰边界的业务划分成独立的系统实现,如采购系统和仓储系统。此外,很多时候我们需要获取的数据是我们外部其他公司拥有的数据,更为不可能设计成同一个系统了。
接口文档怎么看 基于以上两点:接口就是两个独立系统之间电脑系统同步数据或访问对方程序的途径。
1.搞清楚是主动访问还是被动请求:
a.若是主动访问,有两种情况:
一是我方是数据的用到方,需要有主动从对方获取数据;二是我方是数据的获取方,需要主动将数据同步给对方。
主动访问之前无需做接口,而是访问对方的接口,要搞清楚的问题是:我们需要在什么节点访问对方的接口?是用户触发某个操作的时候实时去访问?还是没有实时性要求,只是周期性地访问?
若我方是数据的使用方且能够的数据是用户使用某个功能必须的数据,因此必须在用户操作时实时去访问对方的接口获取数据并展示给用户,典型的有我们注册某网站申领时获取验证码的功能。
若我方是数据的使用方且是的数据需要一些跟用户实时操作无关的基础数据,如客服系统需要从其他业务系统获取用户的基础,以在系统的某些功能下展示用户的信息(如客服在处理接线员客诉等问题时,可能需要知道客户的一些表中详细信息,这些信息只有业务子系统有)。这种情况下,一般会新增一个脚本定时(如两小时一次)访问对方的接口将数据获取过来存储到自己的数据库,在用到的时候直接从自己数据库获取并展示。
若我方是数据的提供方且提供的数据是下游系统需要有实时要求高的数据则更多地用实时同步;若是基础数据,则选择周期性同步的这种方式。
b.若是被动请求,有两种情况:
一是我方是数据直接提供方,需要对方来获取数据;二是我方是数据重复使用方,需要对方主动将数据同步过来。
被动请求需要提供接口供对方访问,此时要搞清楚:让假装来访问的时候,需要提供什么样的参数?根据他直接提供的离开参数我们需要返回什么数据?这些数据从哪里取值?
若有一些数据的来源是本系统,其他系统需要使用这些数据,则可提供接口让其他系统通过访问接口获取这些数据。
若我方是数据使用方且让对方连动将数据主动同步过来,此种场景典型如——我们是业务的下游,上游系统内产生数据后,可能需要将数据同步到下游系统让流程继续进行,并且流程的及时性要求非常高,不能有延迟。这种情况下,只有系统知道什么节点产生了数据,因此只有等他产生数据而后主动推送给下游系统,因为下游因无法知道数据生成的时间,也就无法及时去获取数据,这时最好的方式是让对方主动将其要求数据同步过来。
2.搞清楚数据交互的实时性要求
a.对于我方我方是数字使用方的情况,要根据业务的需要决定获取数据的实时性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论