Skip to content

Commit

Permalink
ResultHelper操作ResultModel,ApiResultHelper操作ApiResultModel;并写了测试
Browse files Browse the repository at this point in the history
  • Loading branch information
fengwenyi committed Aug 21, 2019
1 parent 585d30b commit 0cb8030
Show file tree
Hide file tree
Showing 9 changed files with 288 additions and 39 deletions.
29 changes: 20 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@

# Api Result

`api-result`,目标是让我们开发的API接口规范化,统一化,高效化。同时,它也是容易使用的。在经过无数次的实际项目检验,它也是准确的。

是API接口开发返回结果封装处理的一个解决方案,会让我们的接口开发变得非常容易,具有规范、易用、。

特性:

1、规范

2、易用

是对API接口返回结果规范处理的一个解决方案,是在实际应用环境下产生了,并不断更新和完善,
当然这只是我个人提出的解决方案。不足之处,还请多多指正。


<p align="center">
<img src="./images/api-result-logo.png">
</p>
Expand All @@ -7,11 +23,6 @@
<strong>对API接口返回结果规范封装解决方案</strong>
</p>

<p align="center">
<a target="_blank" href="https://jitpack.io/#fengwenyi/JavaLib">
<img src="https://jitpack.io/v/fengwenyi/api-result.svg" alt="api-result -v" />
</a>
</p>

## 概述

Expand All @@ -20,11 +31,11 @@

## 快速开始

## 方法
已经将jar发布到 [中央仓库](https://search.maven.org/search?q=g:com.fengwenyi%20AND%20a:api-result&core=gav)

## 计划
添加依赖后,我们写如下的代码

基础
## 方法

自定义错误内容
## 版本说明

Binary file modified images/.DS_Store
Binary file not shown.
11 changes: 10 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.fengwenyi</groupId>
<artifactId>api-result</artifactId>
<version>1.0.1</version>
<version>2.0.0</version>
<packaging>jar</packaging>
<name>api-result</name>
<description>对API接口返回结果规范封装解决方案</description>
Expand All @@ -21,6 +21,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<jackson-annotations.version>2.9.8</jackson-annotations.version>
<junit.version>4.12</junit.version>
</properties>

<dependencies>
Expand All @@ -35,6 +36,14 @@
<scope>provided</scope>
</dependency>

<!-- 测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>

</dependencies>

<issueManagement>
Expand Down
64 changes: 64 additions & 0 deletions src/main/java/com/fengwenyi/api_result/helper/ApiResultHelper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package com.fengwenyi.api_result.helper;

import com.fengwenyi.api_result.model.ApiResultModel;

/**
* 接口结果返回封装帮助工具类
*
* <p>
* 该工具类操作的实体类是:{@link com.fengwenyi.api_result.model.ApiResultModel}
* </p>
*
* <p>
* 我们提供了如下三个方法:
* </p>
*
* <ul>
* <li>success(S code, String message, T data):成功,并返回的数据的方法</li>
* <li>success(S code, String message):成功,不返回数据</li>
* <li>error(S code, String message):失败</li>
* </ul>
*
* @author Erwin Feng
* @since 2019-08-21 10:47
*/
public class ApiResultHelper {

/**
* 成功,并返回数据
* @param code 返回码
* @param message 描述信息
* @param data 数据
* @param <S> 返回码类型
* @param <T> 数据类型
* @return 返回结果封装 {@link ApiResultModel}
*/
public static <S, T> ApiResultModel<S, T> success(S code, String message, T data) {
return new ApiResultModel<>(code, message, data);
}

/**
* 成功,无数据返回
* @param code 返回码
* @param message 描述信息
* @param <S> 返回码类型
* @param <T> 数据类型
* @return 返回结果封装 {@link ApiResultModel}
*/
public static <S, T> ApiResultModel<S, T> success(S code, String message) {
return new ApiResultModel<>(code, message, null);
}

/**
* 失败,无数据返回
* @param code 返回码
* @param message 描述信息
* @param <S> 返回码类型
* @param <T> 数据类型
* @return 返回结果封装 {@link ApiResultModel}
*/
public static <S, T> ApiResultModel<S, T> error(S code, String message) {
return new ApiResultModel<>(code, message);
}

}
44 changes: 26 additions & 18 deletions src/main/java/com/fengwenyi/api_result/helper/ResultHelper.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,57 @@
package com.fengwenyi.api_result.helper;

import com.fengwenyi.api_result.model.ApiResultModel;
import com.fengwenyi.api_result.model.ResultModel;

/**
* 结果返回
* 结果返回封装帮助工具类
*
* <p>
* 该工具类操作的实体类是:{@link com.fengwenyi.api_result.model.ResultModel}
* </p>
*
* <p>
* 我们提供了如下三个方法:
* </p>
*
* <ul>
* <li>success(String message, T data):成功,并返回的数据的方法</li>
* <li>success(String message):成功,不返回数据</li>
* <li>error(String message):失败</li>
* </ul>
*
* @author Erwin Feng
* @since 2019-08-02 18:14
*/
public class ResultHelper {

/**
* 成功,并返回数据
* @param code 返回码
* @param message 描述信息
* @param data 数据
* @param <S> 返回码类型
* @param <T> 数据类型
* @return 返回结果封装 {@link com.fengwenyi.api_result.model.ApiResultModel}
* @return 返回结果封装 {@link com.fengwenyi.api_result.model.ResultModel}
*/
public static <S, T> ApiResultModel<S, T> success(S code, String message, T data) {
return new ApiResultModel<>(code, message, data);
public static <T> ResultModel<T> success(String message, T data) {
return new ResultModel<>(message, data);
}

/**
* 成功,无数据返回
* @param code 返回码
* @param message 描述信息
* @param <S> 返回码类型
* @param <T> 数据类型
* @return 返回结果封装 {@link com.fengwenyi.api_result.model.ApiResultModel}
* @return 返回结果封装 {@link com.fengwenyi.api_result.model.ResultModel}
*/
public static <S, T> ApiResultModel<S, T> success(S code, String message) {
return new ApiResultModel<>(code, message, null);
public static <T> ResultModel<T> success(String message) {
return new ResultModel<>(message, null);
}

/**
* 失败,无数据返回
* @param code 返回码
* @param message 描述信息
* @param <S> 返回码类型
* @param <T> 数据类型
* @return 返回结果封装 {@link com.fengwenyi.api_result.model.ApiResultModel}
* @return 返回结果封装 {@link com.fengwenyi.api_result.model.ResultModel}
*/
public static <S, T> ApiResultModel<S, T> error(S code, String message) {
return new ApiResultModel<>(code, message);
public static <T> ResultModel<T> error(String message) {
return new ResultModel<>(message);
}

}
59 changes: 58 additions & 1 deletion src/main/java/com/fengwenyi/api_result/model/ApiResultModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,21 @@
import com.fasterxml.jackson.annotation.JsonInclude;

/**
* 接口返回实体
* 接口结果实体封装模型
*
* <p>
* 该实体模型继承了ResultModel,所以具备它的全部属性
* </p>
*
* <p>
* 有时我们关注结果是否成功,如果错误,不作处理;
* 有时,我们需要对错误进行处理,考虑到这个问题,
* 我们增加了这个实体,并且增加了属性:code
* </p>
*
* <p>
* 参数code的类型,我们允许是泛型,可以根据自己的系统进行合理规划
* </p>
*
* @author Erwin Feng
* @since 2019-07-23 15:03
Expand All @@ -18,20 +32,63 @@ public class ApiResultModel<S, T> extends ResultModel<T> {
*/
private S code;

/**
* 无参数构造方法
*/
public ApiResultModel() {
}

/**
* 构造方法
* @param code 返回码
* @param message 描述信息
*/
public ApiResultModel(S code, String message) {
super(message);
this.code = code;
}

/**
* 构造方法
* @param code 返回码
* @param message 描述信息
* @param data 数据
*/
public ApiResultModel(S code, String message, T data) {
super(message, data);
this.code = code;
}

/**
* 参数code的Get方法
* @return 返回码
*/
public S getCode() {
return code;
}

/**
* 重写 toString()
* @return 有值的参数拼接成的一个字符串
*/
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder("resultModel {");
// code
if (code != null)
stringBuilder.append("\"code\"").append(":").append(code)
.append(", ");
// success
stringBuilder.append("\"success\"").append(":").append(super.getSuccess())
.append(", ");
// message
stringBuilder.append("\"message\"").append(":")
.append("\"").append(super.getSuccess()).append("\"");
// data
if (super.getData() != null)
stringBuilder.append(", ").append("\"data\"").append(":")
.append("\"").append(super.getData()).append("\"");
stringBuilder.append("}");
return stringBuilder.toString();
}
}
Loading

0 comments on commit 0cb8030

Please sign in to comment.