如何设计优秀的接口协议

1、前言

接口协议指的是由前端(展示侧)同后端(业务)确认的实现不同需求需要前后传递的消息的内容及格式。

2、接口的作用

1)将后台服务信息展示给用户,最典型的例子是首页,用户其实什么操作都没有,打开就给用户展示信息。

2)将用户的选择告诉给后台,例如搜索框的输入,页面的点击信息。

3)将后台的计算结果展示给用户,例如搜索的结果,购物车的价格等。

3、接口是怎么制定的

当一个需求拿到手之后,会由产品和前后台开发一块儿讨论,根据UI图来确定需要给用户展示什么信息,用户会有什么操作,用户操作之后后台的运算逻辑,后台运算之后返回什么信息,整个流程如下

在整个过程中用户只是看到了信息,并由信息引导进行一些操作,后台根据用户操作进行运算再将运算后的结果返回给前台,给用户以反馈。

知道了用户的操作流程(也就是产品的交互流程),我们就可以理出来需要确认接口的地方

1)第一步的展示信息请求接口(有可能是上一步操作计算的结果)

2)a. 用户操作信息上传接口

b. 运算结果展示

经过上面的梳理,我们可以知道我们需要开发几个接口以及接口要实现的功能,那么接口里面都有神马内容呢

4、接口信息的内容

从信息流转的角度看,一个是上行动作(将用户的操作或后端计算需要的参数上传),一个是下行动作(将后台运算结果和运营数据给出)。

下行动作既数据获取,获取哪些数据,数据什么格式是由产品和UI决定的,例如,UI图上标示了名字,图片,地址等信息,接口里是必须要有的。在这里要明确的一点是,前台获取数据后只做展示用,不能进行任何计算和转义,否则任何改动都得发版解决,成本太高。

上行动作既用户操作信息,需要上传的数据是用户点击了什么按钮,一般来说不同按钮会对应不同的功能接口,如果同样的按钮对应的功能不一样的话,还需要告诉接口用户是在哪个页面的点击,由后台根据不同的页面对提交的数据进行不同的计算,这样做的好处是,不许发版通过后台传递数据的不同就可以展示不同的东西。

5、接口设计的原则

1)  下行数据纯展示,前台拿到数据后直接进行绘制,不需要进行计算和转义,终点满足的是产品的交互要求和页面效果

2)上行数据明确化,能明确标识去是哪个页面哪个按钮出发的功能,方便后台更改业务逻辑

3)接口设计前瞻性,需求变化所有的人都遇到过,都会被整得很崩溃,需求变化很正常,需求变化说明还是有人在思考问题,需求没变化,说明你做的是个没人理的东西,程序员要拥抱变化,要改就配合改,产品没上线之前,谁也不敢说这个改动会不会就是产品的引爆点。

但是,拥抱变化,可不是傻傻的等通知,那叫被动变化,接口设计要化被动为主动,一个图片的显示与隐藏,就要想到其他图片是不是也有变化的可能,一个字段顺序的更改就要考虑其他字段的顺序会不会变,一个文案的变化就要想到这个文案会不会随时变。当功能发生改变时,一定要仔细想一想,他能改这个位置,其他位置会不会改,改了话我的接口是不是直接就支持。假设产品告诉你说要改需求,你们一看只要改个字段内容就可以实现,产品会对开发表示佩服,否则产品会觉得开发很low,一点点更改都得等发版,产品永远认为能快速实现功能的人是牛人。


总结,接口是功能开发的基础,我们要在根据业务的具体要求来设计接口的同时,多想一步,多考虑一点,来设计出更灵活更稳定更优雅的接口协议,好的接口协议会让我们的开发效率提高N倍,是产品成功的重要基础。

时间: 2024-11-13 14:54:10

如何设计优秀的接口协议的相关文章

第十二篇:为用户设计良好的接口

前言 作为一名优秀的程序员,必须保证自己的代码能提供正确的,完善的接口,如此方能和同事,甲方更好的沟通合作,也让自己的代码更加地容易维护. 本文将介绍一些设计优秀接口的思路. 思路一:导入新的类型 下面还是先看这个例子,我定义了一个存储日期的 Date 类: 1 class Date 2 { 3 public: 4 Date(int month, int day, int year); 5 // ...... 6 }; 可用以下方法定义一个 Date 对象: 1 Date d(30, 3, 19

[接口设计]从客户端的角度设计后端的接口

前言 兵马未动,粮草先行.在一款APP产品的各个版本迭代中,兵马的启动指的是真正开始敲代码的时候,粮草先行则是指前期的需求,交互,UI等评审准备阶段,还有本文要说的接口的设计与评审.虽然很多时候一个api接口的业务,数据逻辑是后端提供的,但真正使用这个接口的是客户端,一个前端功能的实现流程与逻辑,有时候只有客户端的RD才清楚,从某种意义来说,客户端算是接口的需求方.所以建议在前期接口设计和评审时,客户端的RD应该更多的思考和参与,什么时机调什么接口?每个接口需要哪些字段?数据含义怎么给?只有这些

NTP精准授时核心板定制设计 安全性好 接口丰富 授时容量大

NTP精准授时核心板定制设计 安全性好 接口丰富 授时容量大 NTP精准授时核心板是我公司自主研发设计,总结和归纳了以前产品的优缺点和用户体验后优化完善的产品.已广泛应用于电力自动化,通信基站,应急通信,数字广电,轨道交通,航空航天,金融自动化领域等需要精密时钟服务的场所. 一.授时核心板模块功能特点: 1.支持IEE1588-2008协议. 2.授时精度可达ns级,背靠背授时精度优于50ns. 3.支持组播和单播传输模式. 4.支持MASTER.SLAVE模式可灵活配置,2个10/100/10

为用户设计良好的接口

前言 作为一名优秀的程序员,必须保证自己的代码能提供正确的,完善的接口,如此方能和同事,甲方更好的沟通合作,也让自己的代码更加地容易维护. 本文将介绍一些设计优秀接口的思路. 思路一:导入新的类型 下面还是先看这个例子,我定义了一个存储日期的 Date 类: 1 class Date 2 { 3 public: 4 Date(int month, int day, int year); 5 // ...... 6 }; 可用以下方法定义一个 Date 对象: 1 Date d(30, 3, 19

IPMB接口协议总结

IPMB,智能平台管理总线, 是ATCA(Advanced Telecom Computing Architecture)先进的电信计算平台的各FRU背板通讯的两组冗余I2C总线的总称. Intelligent Platform Management BUS 智能平台管理总线, 是ATCA(Advanced Telecom Computing Architecture)先进的电信计算平台的各FRU背板通讯的两组冗余I2C总线的总称. 智能平台管理总线(IPMB)的设计是为了在mission-cr

前阿里P8架构师谈如何设计优秀的API

随着大数据.公共平台等互联网技术的日益成熟,API接口的重要性日益凸显,从公司的角度来看,API可以算作是公司一笔巨大的资产,公共API可以捕获用户.为公司做出许多贡献.对于个人来说,只要你编程,你就是一个API设计者,因为好的代码即是模块--每个模块便是一个API,而好的模块会被多次使用.此外,编写API还有利于开发者提高代码质量,提高自身的编码水平. 优秀API所具备的特征: 简单易学: 易于使用,即使没有文档: 很难误用: 易于阅读,代码易于维护: 足够强大,可以满足需求: 易于扩展: 适

微信小程序的Web API接口设计及常见接口实现

微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,通过小程序的请求Web API 平台获取JSON数据后,可以在小程序界面上进行数据的动态展示.在数据的关键 一环中,我们设计和编写Web API平台是非常重要的,通过这个我们可以实现数据的集中控制和管理,本篇随笔介绍基于Asp.NET MVC的Web API接口层的设计和常见接口代码的展示,以便展示我们常规Web API接口层的接口代码设计.参数的处理等内容. 1.Web API整体性的架构设计 我们整体性的架构设计

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

设计原则之接口隔离原则

segregate   v.隔离 se 蛇  gre green格林  gate门 蛇被格林用门隔离了. 设计原则之接口隔离原则 动机:         客户不应该被强制实现他们不用的方法.应该用多个小的接口代替庞大功能全的接口. 结论:        该原则在代码设计的时候就要考虑.可以使用适配器模式将胖接口隔离. Bad Example:    缺点:         1.如果新增一个robot机器人工人,那么eat方法就是多余的了. // interface segregation pri