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支付中心 (七)权限系统 (八) ...
随机推荐
- E - Palindrome Numbers
题目链接:https://vjudge.net/contest/237394#problem/E A palindrome is a word, number, or phrase that read ...
- Oracle11G的用户解锁、卸载以及基础操作
Oracle用户解锁 [以下操作,必须以超级管理员身份登录,才能修改]oracle安装后,会默认生成很多个用户 以超级管理员身份登录,请注意,其中的空格符:[ sys是一个超级管理员,有最大的权限,d ...
- pat1061. Dating (20)
1061. Dating (20) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Sherlock Holmes ...
- Spring Cloud Ribbon负载均衡
目录 一.简介 二.客户端负载均衡 三.RestTemplate详解 GET请求 POST请求 PUT请求 DELETE请求 一.简介 Spring Cloud Ribbon是一个基于HTTP 和 ...
- HDU 5465——Clarke and puzzle——————【树状数组BIT维护前缀和+Nim博弈】
Clarke and puzzle Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- SpringBoot | 第十五章:基于Postman的RESTful接口测试
前言 从上一章节开始,接下来的几个章节会讲解一些开发过程中配套工具的使用.俗话说的好,工欲善其事,必先利其器.对于开发人员而言,有个好用的工具,也是一件事半功倍的事,而且开发起来也很爽,效率也会提升很 ...
- RabbitMQ 消息的可靠投递
mq 提供了两种方式确认消息的可靠投递 confirmCallback 确认模式 returnCallback 未投递到 queue 退回模式 在使用 RabbitMQ 的时候,作为消息发送方希望杜绝 ...
- ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十二天(非原创)
文章大纲 一.课程介绍二.Ngnix基础知识学习三.Ngnix在淘淘商城中使用四.参考资料下载五.参考文章 一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Sv ...
- Duplicate Emails
Write a SQL query to find all duplicate emails in a table named Person. +----+---------+ | Id | Emai ...
- 移动端toast 提示,HTML css 全屏垂直水平居中