接口需求文档

接口:两个独立系统之间同步数据或访问对方程序的途径

一、如何设计接口

1. 搞清楚是主动访问还是被动请求

1.1. 主动访问:一是我方是数据的使用方,需要主动从对方获取数据;二是我方是数据的提供方,需要主动将数据同步给对方。

主动访问无需做接口,是访问对方的接口。需要明确需要在什么节点访问对方的接口?用户触发什么操作实时去访问?还是没有实时要求,而是周期性地访问?

Senario 1 我方数据使用方,需要的数据是用户使用某个功能必须的数据。在操作时,实时访问对方的接口获取数据展示给用户,如注册某网站时获取验证码的功能。

Senario 2 我方数据使用方,且需要的数据跟用户实时操作无关的基础数据。一般处理:脚本定时(如:两个小时一次)访问对方接口将数据获取来存储到自己的数据库,再用刀的时候直接从数据库去获取并展示。

Senario 3. 我方数据提供方并且数据是下游系统需要的实时呀求高的数据则更多地用实时同步;若是基础数据,则选择周期性同步的方式。

1.2. 被动请求:

一是我方是数据提供方,需要对方来获取数据;二是我方是数据使用方,需要对方主动将数据同步过来。

被动请求需要提供接口供对方访问。确定的点:1. 对方访问时,需要提供什么样的参数?根据提供的参数需要返回什么数据?数据从什么地方取值?

Senario 1 我方数据使用方,不知道上有系统什么节点产生了数据及数据产生的时间,无法及时去获取,可让对方主动将数据同步过来。

二、搞清楚数据交互的实时性要求

Senario 1 我方数据使用方,需要根据业务的需要决定获取数据的实时性。实时?周期性?

三、选择合适的接口方式

1. mq消息队列:一个中间件,数据提供方将数据放到数据中间件,数据获取放从中间件中获取数据。针对向多个系统同步基础数据的需要,消息队列是最适合的方式。

若选择这种同步方式,要注意的一点是:增量同步还是全量同步,若是增量同步,对方是增量获取还是全量获取?若是全量同步,在什么情况下,对方应该更新数据,什么情况下应该更新数据?

2. otter同步:数据同步方直接访问数据获取放的数据表将数据写入对应的表重。实时性最高。

3. http: 常用,双方通过http地址保持数据同步和通信。

四、如何编写接口文档

主动/被动+数据使用方/数据获取方的维度

Senario 1 对方系统主动推送数据:

Senario 2 对方主动来获取数据获取数据

Senario 3 被动接受对方推送的数据

Senario 4 主动从对方获取数据

摘抄自:http://www.woshipm.com/pmd/2297401.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在产品设计工作中,或多或少都会需要用到接口,特别是业务导向性的系统,接口几乎是必不可少的功能。那么什么是接口?如何...
    天边那一抹阅读 26,040评论 12 21
  • 1、客户端与服务器端交互的网络传输协议 https。 2、客户端与服务器端交互的数据格式 json(utf-8编码...
    心远久长阅读 3,579评论 0 4
  • 1.注册接口 1.接口地址:http://www.51qingyuan.com/register.php2.支持格...
    睡雨阅读 32,780评论 5 51
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,183评论 6 13