diff --git a/README.md b/README.md
index 2094f0e..f3399bc 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,20 @@
+# Api Result
+
+`api-result`,目标是让我们开发的API接口规范化,统一化,高效化。同时,它也是容易使用的。在经过无数次的实际项目检验,它也是准确的。
+
+是API接口开发返回结果封装处理的一个解决方案,会让我们的接口开发变得非常容易,具有规范、易用、。
+
+特性:
+
+1、规范
+
+2、易用
+
+是对API接口返回结果规范处理的一个解决方案,是在实际应用环境下产生了,并不断更新和完善,
+ 当然这只是我个人提出的解决方案。不足之处,还请多多指正。
+
+
@@ -7,11 +23,6 @@
对API接口返回结果规范封装解决方案
-
-
-
-
-
## 概述
@@ -20,11 +31,11 @@
## 快速开始
-## 方法
+已经将jar发布到 [中央仓库](https://search.maven.org/search?q=g:com.fengwenyi%20AND%20a:api-result&core=gav)
-## 计划
+添加依赖后,我们写如下的代码
-基础
+## 方法
-自定义错误内容
+## 版本说明
diff --git a/images/.DS_Store b/images/.DS_Store
index 5008ddf..ea9a8f1 100644
Binary files a/images/.DS_Store and b/images/.DS_Store differ
diff --git a/pom.xml b/pom.xml
index bf3e6e5..e8d54c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.fengwenyi
api-result
- 1.0.1
+ 2.0.0
jar
api-result
对API接口返回结果规范封装解决方案
@@ -21,6 +21,7 @@
UTF-8
1.8
2.9.8
+ 4.12
@@ -35,6 +36,14 @@
provided
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
diff --git a/src/main/java/com/fengwenyi/api_result/helper/ApiResultHelper.java b/src/main/java/com/fengwenyi/api_result/helper/ApiResultHelper.java
new file mode 100644
index 0000000..d0f13a0
--- /dev/null
+++ b/src/main/java/com/fengwenyi/api_result/helper/ApiResultHelper.java
@@ -0,0 +1,64 @@
+package com.fengwenyi.api_result.helper;
+
+import com.fengwenyi.api_result.model.ApiResultModel;
+
+/**
+ * 接口结果返回封装帮助工具类
+ *
+ *
+ * 该工具类操作的实体类是:{@link com.fengwenyi.api_result.model.ApiResultModel}
+ *
+ *
+ *
+ * 我们提供了如下三个方法:
+ *
+ *
+ *
+ * - success(S code, String message, T data):成功,并返回的数据的方法
+ * - success(S code, String message):成功,不返回数据
+ * - error(S code, String message):失败
+ *
+ *
+ * @author Erwin Feng
+ * @since 2019-08-21 10:47
+ */
+public class ApiResultHelper {
+
+ /**
+ * 成功,并返回数据
+ * @param code 返回码
+ * @param message 描述信息
+ * @param data 数据
+ * @param 返回码类型
+ * @param 数据类型
+ * @return 返回结果封装 {@link ApiResultModel}
+ */
+ public static ApiResultModel success(S code, String message, T data) {
+ return new ApiResultModel<>(code, message, data);
+ }
+
+ /**
+ * 成功,无数据返回
+ * @param code 返回码
+ * @param message 描述信息
+ * @param 返回码类型
+ * @param 数据类型
+ * @return 返回结果封装 {@link ApiResultModel}
+ */
+ public static ApiResultModel success(S code, String message) {
+ return new ApiResultModel<>(code, message, null);
+ }
+
+ /**
+ * 失败,无数据返回
+ * @param code 返回码
+ * @param message 描述信息
+ * @param 返回码类型
+ * @param 数据类型
+ * @return 返回结果封装 {@link ApiResultModel}
+ */
+ public static ApiResultModel error(S code, String message) {
+ return new ApiResultModel<>(code, message);
+ }
+
+}
diff --git a/src/main/java/com/fengwenyi/api_result/helper/ResultHelper.java b/src/main/java/com/fengwenyi/api_result/helper/ResultHelper.java
index 7020f26..8a30676 100644
--- a/src/main/java/com/fengwenyi/api_result/helper/ResultHelper.java
+++ b/src/main/java/com/fengwenyi/api_result/helper/ResultHelper.java
@@ -1,9 +1,24 @@
package com.fengwenyi.api_result.helper;
-import com.fengwenyi.api_result.model.ApiResultModel;
+import com.fengwenyi.api_result.model.ResultModel;
/**
- * 结果返回
+ * 结果返回封装帮助工具类
+ *
+ *
+ * 该工具类操作的实体类是:{@link com.fengwenyi.api_result.model.ResultModel}
+ *
+ *
+ *
+ * 我们提供了如下三个方法:
+ *
+ *
+ *
+ * - success(String message, T data):成功,并返回的数据的方法
+ * - success(String message):成功,不返回数据
+ * - error(String message):失败
+ *
+ *
* @author Erwin Feng
* @since 2019-08-02 18:14
*/
@@ -11,39 +26,32 @@ public class ResultHelper {
/**
* 成功,并返回数据
- * @param code 返回码
* @param message 描述信息
* @param data 数据
- * @param 返回码类型
* @param 数据类型
- * @return 返回结果封装 {@link com.fengwenyi.api_result.model.ApiResultModel}
+ * @return 返回结果封装 {@link com.fengwenyi.api_result.model.ResultModel}
*/
- public static ApiResultModel success(S code, String message, T data) {
- return new ApiResultModel<>(code, message, data);
+ public static ResultModel success(String message, T data) {
+ return new ResultModel<>(message, data);
}
/**
* 成功,无数据返回
- * @param code 返回码
- * @param message 描述信息
- * @param 返回码类型
* @param 数据类型
- * @return 返回结果封装 {@link com.fengwenyi.api_result.model.ApiResultModel}
+ * @return 返回结果封装 {@link com.fengwenyi.api_result.model.ResultModel}
*/
- public static ApiResultModel success(S code, String message) {
- return new ApiResultModel<>(code, message, null);
+ public static ResultModel success(String message) {
+ return new ResultModel<>(message, null);
}
/**
* 失败,无数据返回
- * @param code 返回码
* @param message 描述信息
- * @param 返回码类型
* @param 数据类型
- * @return 返回结果封装 {@link com.fengwenyi.api_result.model.ApiResultModel}
+ * @return 返回结果封装 {@link com.fengwenyi.api_result.model.ResultModel}
*/
- public static ApiResultModel error(S code, String message) {
- return new ApiResultModel<>(code, message);
+ public static ResultModel error(String message) {
+ return new ResultModel<>(message);
}
}
diff --git a/src/main/java/com/fengwenyi/api_result/model/ApiResultModel.java b/src/main/java/com/fengwenyi/api_result/model/ApiResultModel.java
index 63e385f..1db0f71 100644
--- a/src/main/java/com/fengwenyi/api_result/model/ApiResultModel.java
+++ b/src/main/java/com/fengwenyi/api_result/model/ApiResultModel.java
@@ -3,7 +3,21 @@
import com.fasterxml.jackson.annotation.JsonInclude;
/**
- * 接口返回实体
+ * 接口结果实体封装模型
+ *
+ *
+ * 该实体模型继承了ResultModel,所以具备它的全部属性
+ *
+ *
+ *
+ * 有时我们关注结果是否成功,如果错误,不作处理;
+ * 有时,我们需要对错误进行处理,考虑到这个问题,
+ * 我们增加了这个实体,并且增加了属性:code
+ *
+ *
+ *
+ * 参数code的类型,我们允许是泛型,可以根据自己的系统进行合理规划
+ *
*
* @author Erwin Feng
* @since 2019-07-23 15:03
@@ -18,20 +32,63 @@ public class ApiResultModel extends ResultModel {
*/
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();
+ }
}
diff --git a/src/main/java/com/fengwenyi/api_result/model/ResultModel.java b/src/main/java/com/fengwenyi/api_result/model/ResultModel.java
index 7068959..e540ea8 100644
--- a/src/main/java/com/fengwenyi/api_result/model/ResultModel.java
+++ b/src/main/java/com/fengwenyi/api_result/model/ResultModel.java
@@ -5,7 +5,25 @@
import java.io.Serializable;
/**
- * 返回实体
+ * 结果实体封装模型
+ *
+ *
+ * 包含三个属性:
+ *
+ *
+ *
+ * - success:返回结果标识,true / false(成功 / 失败)
+ * - message:描述信息,错误时,可以在这里填写错误的详细信息
+ * - data:数据,成功并且需要返回数据时,才有该参数
+ *
+ *
+ *
+ * 错误时,只会返回success和message,成功并且需要返回数据时,才会返回三个参数,即success、message和data
+ *
+ *
+ *
+ * 数据是一个泛型(T),可以是基本数据类型,Map,对象或是一个数组(数组里面可以包含多个对象)
+ *
*
* @author Erwin Feng
* @since 2019-07-23 15:01
@@ -30,28 +48,73 @@ public class ResultModel implements Serializable {
*/
private T data;
+ /**
+ * 无参数构造方法
+ */
public ResultModel() {
}
+ /**
+ * 构造方法
+ * @param message 描述信息
+ * @param data 数据
+ */
public ResultModel(String message, T data) {
this.success = true;
this.message = message;
this.data = data;
}
+ /**
+ * 构造方法
+ * @param message 描述信息
+ */
public ResultModel(String message) {
this.message = message;
}
+ /**
+ * 参数success的Get方法
+ * @return 结果标识,true / false(成功 / 失败)
+ */
public Boolean getSuccess() {
return success;
}
+ /**
+ * 参数message的Get方法
+ * @return 描述信息
+ */
public String getMessage() {
return message;
}
+ /**
+ * 参数data的Get方法
+ * @return 数据
+ */
public T getData() {
return data;
}
+
+ /**
+ * 重写 toString()
+ * @return 有值的参数拼接成的一个字符串
+ */
+ @Override
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder("resultModel {");
+ // success
+ stringBuilder.append("\"success\"").append(":").append(success)
+ .append(", ");
+ // message
+ stringBuilder.append("\"message\"").append(":")
+ .append("\"").append(message).append("\"");
+ // data
+ if (data != null)
+ stringBuilder.append(", ").append("\"data\"").append(":")
+ .append("\"").append(data).append("\"");
+ stringBuilder.append("}");
+ return stringBuilder.toString();
+ }
}
diff --git a/src/test/java/com/fengwenyi/api_result/helper/HelperTests.java b/src/test/java/com/fengwenyi/api_result/helper/HelperTests.java
new file mode 100644
index 0000000..549d5d7
--- /dev/null
+++ b/src/test/java/com/fengwenyi/api_result/helper/HelperTests.java
@@ -0,0 +1,46 @@
+package com.fengwenyi.api_result.helper;
+
+import com.fengwenyi.api_result.model.ApiResultModel;
+import com.fengwenyi.api_result.model.ResultModel;
+import org.junit.Test;
+
+/**
+ * Helper测试
+ * @author Erwin Feng
+ * @since 2019-08-21 10:58
+ */
+public class HelperTests {
+
+ // 测试 ResultHelper
+ @Test
+ public void testResultHelper() {
+ // 成功,无数据
+ ResultModel resultModel = ResultHelper.success("Success");
+ System.out.println(resultModel); // resultModel {"success":true, "message":"Success"}
+
+ // 成功,有数据
+ ResultModel resultModel2 = ResultHelper.success("Success", "this is data");
+ System.out.println(resultModel2); // resultModel {"success":true, "message":"Success", "data":"this is data"}
+
+ // 失败
+ ResultModel resultModel3 = ResultHelper.error("This is error info");
+ System.out.println(resultModel3); // resultModel {"success":false, "message":"This is error info"}
+ }
+
+ // 测试 ApiResultHelper
+ @Test
+ public void testApiResultHelper() {
+ // 成功,无数据
+ ApiResultModel apiResultModel1 = ApiResultHelper.success(0, "Success");
+ System.out.println(apiResultModel1); // resultModel {"code":0, "success":true, "message":"true"}
+
+ // 成功,有数据
+ ApiResultModel apiResultModel2 = ApiResultHelper.success(0, "Success", "This is data");
+ System.out.println(apiResultModel2); // resultModel {"code":0, "success":true, "message":"true", "data":"This is data"}
+
+ // 失败
+ ApiResultModel apiResultModel3 = ApiResultHelper.success(1000000, "This is error info");
+ System.out.println(apiResultModel3); // resultModel {"code":1000000, "success":true, "message":"true"}
+ }
+
+}
diff --git a/version/V1.0.0.BUILD.md b/version/V1.0.0.BUILD.md
deleted file mode 100644
index efd986c..0000000
--- a/version/V1.0.0.BUILD.md
+++ /dev/null
@@ -1,9 +0,0 @@
-## V1.0.0.BUILD
-
-- 由原项目JavaLib-result更命名`api-result`
-
-- 包名更改为 `net.iutil`
-
-- 类名 `Result` 更改为 `ApiResult`
-
-- 字符串工具类 (`StringUtils`) 防止调用,不公开
\ No newline at end of file