接口设计小结

原创 2016年05月31日 20:11:06

接口设计规范

1、接口命名:

命名要有意义,原则上看接口名就能理解接口的作用,且接口涉及的动作包含到接口命名中
getUser 表示获取用户信息,属于查询操作
addUser表示新增一个用户,数据插入操作
如果命名为getUser的接口,实际上有插入操作,说明这个接口命名是失败的

2、事务处理:

涉及多个增删改操作的组合,必须增加事务处理
只有单个增删改操作,或者只有查询操作,则不用事务处理

3、 渠道/调用方设计:

重要的接口要加入渠道统计/IP来源/调用方来源/用户ID等。比如注册接口,增加参数channel,并记录到日志或数据库,可方便统计用户的注册来源

4、日志打印:

增删改、关系绑定这种比较重要的接口,建议打上参数日志、事务日志。尤其是涉及用户的操作,系统又有进行校验的,容易发生歧义的,都要打上日志。比如邀请好友,把邀请码打到日志中,这样用户出现邀请失败的问题时,查看当时用户传递的邀请码,就很容易定义用户的操作是否正常;发送短信操作,把手机打印到日志中,可方便统计短信发送信息

5、 接口实现:

A、 不要出现magic number,比如if(type==1) XXX; else if(type==2) YYY; else ZZZ;
B、 增删改涉及事务处理的,考虑并发处理。
常用的,对整个接口加synchronized,可以处理单体服务的并发;对表记录加锁,可以处理分布式服务的并发
C、 校验在前,实现在后。遍历各个参数,校验临界条件,等到正常条件时,再进行逻辑处理
D、 异常处理:尽量处理可控的异常(如null值处理),不可控的异常可不管(定位错误时通过栈信息也容易知道错误的根源)

6、 分布式事务不好处理,尽量避免用到

版权声明:本文为博主原创文章,未经博主允许不得转载。

微机接口课程设计报告-模拟汽车控制系统

1. 课程论文题目    设计一个模拟汽车控制系统,用简单逻辑电平控制车的档位(前进1,前进2,前进3,后退),用步进电机的转速模拟车的速度(若步进电机不能用,也可以用流水灯的刷新方向和速度,或数码管...
  • xj2419174554
  • xj2419174554
  • 2014年01月13日 23:27
  • 2643

API 返回结果设计经验与总结

前言 RESTful API的设计已经很成熟了,大家也都比较认可。本文也不再过多介绍RESTful API相关的知识,而是针对JSON型API的返回结果设计,总结下自己的经验。 结构 ...
  • ishxiao
  • ishxiao
  • 2016年08月15日 14:59
  • 1733

分页查询接口常见设计思路

我们在web开发中,在页面展示时经常会遇到分页技术,常见的分页实现的思路有: 客户端分页:直接将全部或多页结果数据一次性返回给客户端,客户端通过展现组件进行数据分页的控制。 数据库分页:进行数据查询时...
  • starlh35
  • starlh35
  • 2017年08月05日 17:13
  • 1519

【设计模式】面向对象小结——接口、泛型和委托

这篇文章的主要内容是写,我对面向对象功能:接口、泛型和委托的理解。。很多人都认为,我不使用它们,照样能实现程序想要的功能,为什么还要用它们?可以这么说,如果要想混IT行业,那么,我们就要成为专业人员。...
  • u013036092
  • u013036092
  • 2015年01月10日 20:48
  • 1246

window程序设计小结更新

  • 2012年07月01日 21:48
  • 23KB
  • 下载

异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小结)

(一)让我们来看看同步异步的区别 同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果。 异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作。 .NET框架...
  • richnaly
  • richnaly
  • 2011年08月18日 11:42
  • 12381

黑马程序员.net学习笔记2--接口,抽象类小结。

----------Windows Phone 7手机开发、.Net培训、期待与您交流!!----------------            接口,抽象类悲剧啊,这两个东东有点郁闷,进过研究...
  • wangxu6626
  • wangxu6626
  • 2011年12月05日 22:51
  • 138

异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小结)

转自 http://blog.csdn.net/richnaly/article/details/6697669,作者richnaly (一)让我们来看看同步异步的区别 同步方法调用在程序...
  • u014630486
  • u014630486
  • 2017年02月04日 14:15
  • 234

java集合小结(一)Collecotion接口

---------------------- android培训、java培训、期待与您交流! ----------------------  黑马程序员——集合小结(一)Collection接...
  • baipeijie520
  • baipeijie520
  • 2011年12月19日 13:57
  • 410

MIT OS lab3--小结续 系统调用与用户接口 (cprintf..)

MIT OS lab3--小结续 系统调用与用户接口 (cprintf..) 2010-01-30 16:31 前面总结了:系统调用是OS留给用户的接口。用户的许多操作需要...
  • chrysanthemumcao
  • chrysanthemumcao
  • 2012年08月13日 13:04
  • 1095
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:接口设计小结
举报原因:
原因补充:

(最多只允许输入30个字)