rpc - 接口返回数据结构的设计
方案一:
系统级状态 、业务级别的状态同用 code
要特殊声明保留状态,如若不声明保留状态,一旦业务开发人员用到了系统级的状态,就有必要侵入的改动业务返回的code(新code与业务欲返回的code不一样,不好调试),不是很好
// --- 系统级状态 ---
{
'code' : 20000,
'message' : '系统没有出错、登录检查过了、权限检查过了、业务执行正常',
'data' : {
}
} {
'code' : 20001,
'message' : '系统出错-对业务的开发人员要声明保留',
'data' : {
}
} {
'code' : 20002,
'message' : '登录检查没有过-对业务的开发人员要声明保留',
'data' : {
'jumpUrl' : 'http://passport.baidu.com/'
}
} {
'code' : 20003,
'message' : '权限检查没有过-对业务的开发人员要声明保留',
'data' : { }
} // --- 业务级状态 ---
{
'code' : 20004,
'message' : '业务1出错',
'data' : { }
} {
'code' : 20005,
'message' : '业务2出错',
'data' : { }
}
方案二: (更偏向此种)
系统级状态 、业务级别的状态拆开 code.data.code(无需特殊声明)
无需特殊声明保留状态,不会带来侵入修改的问题
// -------- 系统级状态 --------------
{
'code' : 200,
'message' : '系统没有出错、登录检查过了、权限检查过了',
'data' : {
}
} {
'code' : 201,
'message' : '系统出错',
'data' : {
}
} {
'code' : 202,
'message' : '登录检查没有过',
'data' : {
'jumpUrl' : 'http://passport.baidu.com/'
}
} {
'code' : 203,
'message' : '权限检查没有过',
'data' : { }
} // -------- 业务级状态 --------------
{
'code' : 200,
'message' : '系统没有出错、登录检查过了、权限检查过了',
'data' : {
'code' : '201'
'message' : '业务1出错'
}
} {
'code' : 200,
'message' : '系统没有出错、登录检查过了、权限检查过了',
'data' : {
'code' : '201'
'message' : '业务2出错'
}
}
rpc - 接口返回数据结构的设计的更多相关文章
- 谈谈RPC中的异步调用设计
RPC(远过程调用)在分布式系统中是很常用的基础通讯手段,核心思想是将不同进程之间的通讯抽象为函数调用,基本的过程是调用端通过将参数序列化到流中并发送给服务端,服务端从流中反序列化出参数并完成实际的处 ...
- [JAVA设计模式]第一部分:接口、抽象类、设计原则
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- carry-检查数据接口返回数据合法性
问题背景: 在测试&部署监控过程中,我们常常会遇到外部接口返回数据不靠谱的时候.最常见的场合是从某个http获取如json和xml等结构化的结果,进行解析并处理,在这时候出现以下这几种常见类型 ...
- RPC接口mock测试
转载:http://blog.csdn.net/ronghuanye/article/details/71124127 1 简介 Dubbo目前的应用已经越来越广泛.或者基于Dubbo二 ...
- 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念
http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...
- 用javascript向一个网页连接接口发送请求,并接收该接口返回的json串
一般前端与后端的互交都是通过json字符串来互交的,我的理解就是与网页接口的来回数据传递采用的数据结构就是json.一般是这样. 比如后端的代码是这样的: @RequestMapping(value ...
- 业务接口+UI层的设计(基于Castle实现的Repository)
业务接口+UI层的设计(基于Castle实现的Repository) Repository层设计的文章见:[http://www.cnblogs.com/yomho/p/3297042.html] ...
- 搭建rtmp直播流服务之3:java开发ffmpeg实现rtsp转rtmp并实现ffmpeg命令的接口化管理架构设计及代码实现
上一篇文章简单介绍了java如何调用ffmpeg的命令:http://blog.csdn.net/eguid_1/article/details/51777716 上上一篇介绍了nginx-rtmp服 ...
- 程序员的自我救赎---11.1:RPC接口使用规范
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
随机推荐
- 机器学习读书会的分享 - Reinforcement Learning: An Introduction 第4-6章
我在机器学习读书会的分享slides,关于DP.MC.TD方法: https://mp.weixin.qq.com/s/r8wZw4iZwFCz0nnakutY3Q 内容如下:
- nginx 添加https支持
自行颁发不受浏览器信任的SSL证书为晒晒IQ网颁发证书.ssh登陆到服务器上,终端输入以下命令,使用openssl生成RSA密钥及证书. # 生成一个RSA密钥 $ openssl genrsa -d ...
- Lambda动态排序分页通用方法
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- 无需控件直接导出xls(csv)
/// <summary> /// 执行导出 /// </summary> /// <param name="ds">要导出的DataSet&l ...
- eclipse调试(转)
step into : 单步执行,遇到子函数就进入并且继续单步执行(F5) step over: 在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完在停止,也就是把子函 ...
- css 选择器 & UI元素的伪类选择器 & 伪元素选择器
UI元素的伪类选择器 1. :focus 用来选取获取焦点事件 2. :enabled 用来指定当元素处于可用状态时的样式 3. :disable 用来指定元素处于不可用时的状态 表单里应用 ...
- Css文件目录结构
一般一个网站会有这么三个样式: global.css | reset.css(格式化样式) common.css(公共组件样式) layout.css(当前页面样式) global.css | res ...
- Android compress 压缩 会不会失真
微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩.试了几种方法,一一道来. 代码如下 ByteArrayOutputStream baos = new ByteArrayOutputStre ...
- 【extjs6学习笔记】1.13 初始: 模型
Ext JS包括数据包Ext.data包括处理从服务器保存和检索数据的类. 以下是Ext JS 6数据包中的重要类: Model (Ext.data.Model) Store (Ext.data.St ...
- nmap --script http-enum,http-headers,http-methods,http-php-version -p 80 目标域
从http服务器上收集到更多地信息 nmap --script http-enum,http-headers,http-methods,http-php-version -p 80 目标域