相关阅读:
萌新快速成长之路
如何编写软件设计文档
JAVA编程思想(一)通过依赖注入增加扩展性
JAVA编程思想(二)如何面向接口编程
JAVA编程思想(三)去掉别扭的if,自注册策略模式优雅满足开闭原则
JAVA编程思想(四)Builder模式经典范式以及和工厂模式如何选?
Java编程思想(七)使用组合和继承的场景
JAVA基础(一)简单、透彻理解内部类和静态内部类
JAVA基础(二)内存优化-使用Java引用做缓存
JAVA基础(三)ClassLoader实现热加载
JAVA基础(四)枚举(enum)和常量定义,工厂类使用对比
JAVA基础(五)函数式接口-复用,解耦之利刃
Seata源码(一)初始化
Seata源码(二)事务基础对象
Seata源码(三)事务处理类结构和流程
Seata源码(四)全局锁GlobalLock
Seata源码(五)Seata数据库操作
Seata源码(六)Seata的undo日志操作
Seata源码(七)Seata事务故障处理
Seata源码(八)Seata事务生命周期hook
Seata源码(九)TCC核心类和处理逻辑
Seata源码(十)RM接收到请求后的调用过程
Seata源码(十一)TC接收到请求后的处理过程\
一、前后端接口设计
前后端接口设计主要考虑以下几点:
二、接口内容
接口内容包括:
- 鉴权信息,如用于身份识别的token。
- 公共信息,例如用户ID,项目ID等需要传给后端的公共数据。
- 错误信息,如错误码,错误描述。
- 业务数据,业务使用到的数据,如订单,产品。
三、数据承载
数据承载指接口数据是放到HTTP消息头还是HTTP消息体当中,一些公共的信息如鉴权token,用户ID,项目ID可以考虑放到消息头中,应答消息,业务数据,异常可以考虑放到消息体中。
按照这个原则,可设计一个公共的应答对象:
{
resultCode, --标识成功还是失败
errorCode,
errorMsg,
domainObject
}
四、数据格式
JSON格式容易阅读,并且从字符串到对象的转换很方便,因此基本上数据格式非它莫属。
五、异常约定
异常约定主要考虑以何种方式告知前端异常?例如是通过HTTP状态码告知还是通过接口对象返回的结果码告知,HTTP状态码方式的好处是监控异常比较方便,直接可以取到状态码,而接口对象返回的结果码则还需要解析。
个人觉得都可以,只要约定好就行。
end.