Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unickcheng/response-handler
A maven dependency that handles response body, catches exceptions, supports for openapi
https://github.com/unickcheng/response-handler
exception-handler java maven-package response-body spring-boot
Last synced: 25 days ago
JSON representation
A maven dependency that handles response body, catches exceptions, supports for openapi
- Host: GitHub
- URL: https://github.com/unickcheng/response-handler
- Owner: UNICKCHENG
- License: apache-2.0
- Created: 2023-01-05T15:10:40.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-04T12:03:00.000Z (about 1 year ago)
- Last Synced: 2023-10-04T20:32:53.517Z (about 1 year ago)
- Topics: exception-handler, java, maven-package, response-body, spring-boot
- Language: Java
- Homepage:
- Size: 3.43 MB
- Stars: 6
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: readme-zh.md
- Changelog: CHANGELOG.md
- Contributing: contributing.md
- License: LICENSE
Awesome Lists containing this project
README
欢迎来到 Response-Handler 👋
## 更新 2023-08-29
您现在只需在 `pom.xml` 中导入下述依赖,便可实现统一封装和开启 OpenAPI 3,具体样例可参考 [spring-boot-demo](./spring-boot-demo)
```xml
io.github.unickcheng
response-handler-starter
0.3.0```
---
![](assets/restful-api.gif)
Response-Handler 是为 Spring 开发者提供统一的接口返回格式,您可以使用一个注解,搞定异常捕获、数据返回,以及 OpenAPI 3。 如果您对这个项目感兴趣,欢迎来一起孵化它,详细操作可见 [How to contribute](contributing.md)。
## ✨特征
- [X] 统一返回体格式
- [X] 支持自动捕获常见异常,无需在抛出异常后再手动 catch
- [X] 支持扩展自定义状态码
- [x] 内置 OpenAPI 3,即 Swagger 3 的支持
- [X] 可从 Maven 中央仓库下载 ([OSSRH-87858](https://issues.sonatype.org/projects/OSSRH/issues/OSSRH-87858))
- [ ] 支持返回数据进行加密(后期考虑使用注解来内置 AES、RSA、国密等加密方法)## 🎉用法
您需要先在 pom.xml 中添加下述依赖,然后执行 `mvn install` 下载依赖,注意版本号可能过时,您可以在 [Maven 中央仓库](https://mvnrepository.com/artifact/io.github.unickcheng/response-handler-starter) 查看最新的版本
```xmlio.github.unickcheng
response-handler-starter
0.3.0```
> 如果您希望使用最新开发版,您可以在 pom.xml 中追加 GitHub 仓库地址。注意,使用最新开发版可能存在诸多不稳定因素
```xml
unickcheng
https://unickcheng.github.io/maven-packages/
```
如果您不知道如何开始,您可以参考或使用 [spring-boot-demo](./spring-boot-demo) 来熟悉使用流程
## 😎 扩展玩法
### 1. 网页端查看所有接口
请网页端访问 `http://:8080/openapi-ui.html`,如果您的端口号不是默认的 8080,请修改
![Pasted image 20230114213227.png](assets/Pasted-image-20230114213227.png)
返回体结构中包含请求时间,默认时区为 `Asia/Shanghai`。因为使用的是 `@JsonFormat` 来格式化字段,所以您可以很方便地在 `application` 配置文件中进行修改,注意目前您只能修改时区
```
# @JsonFormat: set time zone
spring.jackson.time-zone=Asia/Shanghai
```### 2. 根据业务自定义响应体状态码信息
这一部分采用的是工厂设计模式,您只需对 `ExceptionStatusInfo` 接口进行实现,即可封装自定义状态码枚举类,之后在相应的方法内抛出自定义异常,可参考 [ReturnStatus.java](spring-boot-demo/src/main/java/cc/unickcheng/rhdemo/enums/ReturnStatus.java)
```java
throw new RHandlerException(ReturnStatus.CUSTOM_ERROR);
```如果您暂时没有这方面的需求,建议您使用 `org.springframework.http.HttpStatus` 作为状态码进行快速开发。简单来说,您无需增加额外的操作,只需在相应的方法内抛出类似于下述代码的异常
```java
throw new RHandlerException(HttpStatus.BAD_REQUEST);
```## ✍️ 日志
- [CHANGELOG](CHANGELOG.md)
## 👍 其他有趣的项目
- [Sa-Token](https://github.com/dromara/sa-token)
- [encrypt-body-spring-boot-starter](https://github.com/Licoy/encrypt-body-spring-boot-starter)
- [lombok](https://github.com/projectlombok/lombok)## 💖 感谢
- [Spring Boot](https://spring.io/projects/spring-boot) 提供的框架支持
- [开源依赖](https://github.com/UNICKCHENG/Response-Handler/network/dependencies) 提供的支持
- 感谢所有开源项目分享的想法和技术