1 api-result是什么?

api-result ,是一套API接口响应参数规范化解决方案。

2 为什么要用api-result?

2.1 微服务开发

微服务开发,服务之间的调用,说到底就是接口开发,关于接口开发,我会在接口开发的系列逐一为大家讲解,服务好不好,稳定性怎么样,最关键的是还是响应结果做的怎么样。我调用你接口,由于很多原因,我不知道调通了没有,如果没有调用,那么是什么原因导致没有通,是接口的原因,还是服务的原因?还是网络原因,等等。

2.2 HTTP介绍

现在的接口都是采用HTTP+JSON的方式,所以首先我们要考虑HTTP层。
我们要根据HTTP通用的响应码,来告诉我,你是否正确请求到我的服务接口。
只有当HTTP响应码是200时,才表示正确请求到我们的服务接口。其他都不是
404:请求地址不正确
401:无权限
400:HTTP消息不正确
500:服务器接口内部错误

这些都是HTTP接口。

api-result格式

不要直接就返回数据,不然我怎么知道接口业务逻辑处理是否正确,如果错误,那么错误原因是什么呢?这些你都以告诉用户。要告诉用户原因,为什么错误,还有尽可能的提示解决方案。

success,会告诉我们接口这次处理的业务逻辑结果是否正确。正确,就走正确的逻辑,不正确,再根据各种错误情况进行错误处理。
message,提示信息。主要是错误信息。
data,这里放数据

3 api-result要怎么用?

api-result,已发布到中央仓库。见这里:
maven.org 查看
mvnrepository.com 查看
你只需要去添加依赖就行。

maven:

  1. <dependency>
  2. <groupId>com.fengwenyi</groupId>
  3. <artifactId>api-result</artifactId>
  4. <version>2.1.1.RELEASE</version>
  5. </dependency>

gradle

  1. implementation 'com.fengwenyi:api-result:2.1.1.RELEASE'

代码示例:

  1. @GetMapping("/users-2")
  2. public ResponseEntity<?, ?> users2() {
  3. List<UserResponseVo> userResponseVos = Arrays.asList(
  4. new UserResponseVo("u_1", "关羽", "云长"),
  5. new UserResponseVo("u_1", "张飞", "翼德"),
  6. new UserResponseVo("u_1", "赵云", "子龙")
  7. );
  8. return ResponseUtils.success(userResponseVos);
  9. }

响应示例:

  1. {
  2. "message":"Success",
  3. "success":true,
  4. "data":[
  5. {
  6. "uid":"u_1",
  7. "nickname":"云长",
  8. "real_name":"关羽"
  9. },
  10. {
  11. "uid":"u_2",
  12. "nickname":"翼德",
  13. "real_name":"张飞"
  14. },
  15. {
  16. "uid":"u_3",
  17. "nickname":"子龙",
  18. "real_name":"赵云"
  19. }
  20. ]
  21. }

4 功能列表

  • 简单的数据
  • [x] 标准且规范的格式

  • 标准且规范的响应封装格式

  • 支持简单的数据
  • 支持自定义响应码
  • 支持分页返回

5 API