{"id":17657386,"url":"https://github.com/unickcheng/response-handler","last_synced_at":"2025-05-07T11:46:54.813Z","repository":{"id":99543023,"uuid":"585593316","full_name":"UNICKCHENG/Response-Handler","owner":"UNICKCHENG","description":"A maven dependency that handles response body, catches exceptions, supports for openapi","archived":false,"fork":false,"pushed_at":"2024-01-21T20:32:48.000Z","size":3571,"stargazers_count":6,"open_issues_count":8,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-31T09:41:23.357Z","etag":null,"topics":["exception-handler","java","maven-package","response-body","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UNICKCHENG.png","metadata":{"files":{"readme":"readme-zh.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-05T15:10:40.000Z","updated_at":"2023-01-29T05:17:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"1222b8f1-97dc-451c-9577-c4b35321534d","html_url":"https://github.com/UNICKCHENG/Response-Handler","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNICKCHENG%2FResponse-Handler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNICKCHENG%2FResponse-Handler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNICKCHENG%2FResponse-Handler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UNICKCHENG%2FResponse-Handler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UNICKCHENG","download_url":"https://codeload.github.com/UNICKCHENG/Response-Handler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252873938,"owners_count":21817708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["exception-handler","java","maven-package","response-body","spring-boot"],"created_at":"2024-10-23T14:40:35.579Z","updated_at":"2025-05-07T11:46:54.778Z","avatar_url":"https://github.com/UNICKCHENG.png","language":"Java","readme":"\u003ch1 align=\"center\"\u003e欢迎来到 Response-Handler 👋\u003c/h1\u003e\n\n## 更新 2023-08-29\n\n您现在只需在 `pom.xml` 中导入下述依赖，便可实现统一封装和开启 OpenAPI 3，具体样例可参考 [spring-boot-demo](./spring-boot-demo)\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.unickcheng\u003c/groupId\u003e\n    \u003cartifactId\u003eresponse-handler-starter\u003c/artifactId\u003e\n    \u003cversion\u003e0.3.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n---\n\n![](assets/restful-api.gif)\n\nResponse-Handler 是为 Spring 开发者提供统一的接口返回格式，您可以使用一个注解，搞定异常捕获、数据返回，以及 OpenAPI 3。 如果您对这个项目感兴趣，欢迎来一起孵化它，详细操作可见 [How to contribute](contributing.md)。\n\n\n## ✨特征\n\n- [X] 统一返回体格式\n- [X] 支持自动捕获常见异常，无需在抛出异常后再手动 catch\n- [X] 支持扩展自定义状态码\n- [x] 内置 OpenAPI 3，即 Swagger 3 的支持\n- [X] 可从 Maven 中央仓库下载 ([OSSRH-87858](https://issues.sonatype.org/projects/OSSRH/issues/OSSRH-87858))\n- [ ] 支持返回数据进行加密（后期考虑使用注解来内置 AES、RSA、国密等加密方法）\n\n## 🎉用法\n\n您需要先在 pom.xml 中添加下述依赖，然后执行 `mvn install` 下载依赖，注意版本号可能过时，您可以在 [Maven 中央仓库](https://mvnrepository.com/artifact/io.github.unickcheng/response-handler-starter) 查看最新的版本\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.unickcheng\u003c/groupId\u003e\n    \u003cartifactId\u003eresponse-handler-starter\u003c/artifactId\u003e\n    \u003cversion\u003e0.3.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n\u003e 如果您希望使用最新开发版，您可以在 pom.xml 中追加 GitHub 仓库地址。注意，使用最新开发版可能存在诸多不稳定因素\n```xml\n\u003c!--添加 GitHub 仓库地址--\u003e\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003eunickcheng\u003c/id\u003e\n        \u003curl\u003ehttps://unickcheng.github.io/maven-packages/\u003c/url\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n如果您不知道如何开始，您可以参考或使用 [spring-boot-demo](./spring-boot-demo) 来熟悉使用流程\n\n## 😎 扩展玩法\n\n### 1. 网页端查看所有接口\n\n请网页端访问 `http://\u003cyour-ip\u003e:8080/openapi-ui.html`，如果您的端口号不是默认的 8080，请修改\n\n![Pasted image 20230114213227.png](assets/Pasted-image-20230114213227.png)\n\n返回体结构中包含请求时间，默认时区为 `Asia/Shanghai`。因为使用的是 `@JsonFormat` 来格式化字段，所以您可以很方便地在 `application` 配置文件中进行修改，注意目前您只能修改时区\n\n```\n# @JsonFormat: set time zone  \nspring.jackson.time-zone=Asia/Shanghai\n```\n\n### 2. 根据业务自定义响应体状态码信息\n\n这一部分采用的是工厂设计模式，您只需对 `ExceptionStatusInfo` 接口进行实现，即可封装自定义状态码枚举类，之后在相应的方法内抛出自定义异常，可参考 [ReturnStatus.java](spring-boot-demo/src/main/java/cc/unickcheng/rhdemo/enums/ReturnStatus.java) \n```java\nthrow new RHandlerException(ReturnStatus.CUSTOM_ERROR);\n```\n\n如果您暂时没有这方面的需求，建议您使用 `org.springframework.http.HttpStatus` 作为状态码进行快速开发。简单来说，您无需增加额外的操作，只需在相应的方法内抛出类似于下述代码的异常\n```java\nthrow new RHandlerException(HttpStatus.BAD_REQUEST);\n```\n\n## ✍️ 日志\n\n- [CHANGELOG](CHANGELOG.md)\n\n## 👍 其他有趣的项目\n\n- [Sa-Token](https://github.com/dromara/sa-token)\n- [encrypt-body-spring-boot-starter](https://github.com/Licoy/encrypt-body-spring-boot-starter)\n- [lombok](https://github.com/projectlombok/lombok)\n\n## 💖 感谢\n\n- [Spring Boot](https://spring.io/projects/spring-boot) 提供的框架支持\n- [开源依赖](https://github.com/UNICKCHENG/Response-Handler/network/dependencies) 提供的支持\n- 感谢所有开源项目分享的想法和技术","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funickcheng%2Fresponse-handler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funickcheng%2Fresponse-handler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funickcheng%2Fresponse-handler/lists"}