SpringBoot定义优雅全局统一Restful API 响应框架四

这篇具有很好参考价值的文章主要介绍了SpringBoot定义优雅全局统一Restful API 响应框架四。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果没有看前面几篇文章请先看前面几篇

SpringBoot定义优雅全局统一Restful API 响应框架

SpringBoot定义优雅全局统一Restful API 响应框架二

SpringBoot定义优雅全局统一Restful API 响应框架三

目前我们好像似乎解决所有问题,达到了我们理想的效果如下

但是在业务错误返回时候不太理想如下

没有必要返回 reuqesterrorMsg

还有如果业务非常复杂的时候,会不会出现错误码分配使用混乱和重复问题这个问题应该如何避免和解决呢?

这个时候我想到 使用业务错误常量来代替错误码,这样更加见字识意, 进一步抽象错误常量公共接口模块

package cn.soboys.springbootrestfulapi.common.error;

import java.util.List;

/**
 * @author 公众号 程序员三时
 * @version 1.0
 * @date 2023/5/9 20:14
 * @webSite https://github.com/coder-amiao
 * 定义错误常量 代替错误码,避免业务复杂错误码分配重复等问题
 */
public interface CommonErrorConstant {
    /**
     * 公共错误码定义
     */
    public static final String InvalidRequest = "InvalidRequest";
    public static final String InvalidArgument = "InvalidArgument";
    public static final String NotFound = "NotFound";
    public static final String UnknownError = "UnknownError";
    public static final String OK = "OK";
    public static final String FAIL = "FAIL";



    /**
     * 其他自定义业务错误码
     */



}

通用错误码

package cn.soboys.springbootrestfulapi.common.error;

import cn.soboys.springbootrestfulapi.common.resp.ResultCode;

/**
 * @author 公众号 程序员三时
 * @version 1.0
 * @date 2023/5/2 21:36
 * @webSite https://github.com/coder-amiao
 */
public enum CommonErrorCode implements ResultCode {

    /**
     * 错误请求
     */
    INVALID_REQUEST(false, CommonErrorConstant.InvalidRequest, "Invalid request, for reason: "),
    /**
     * 参数验证错误
     */
    INVALID_ARGUMENT(false, CommonErrorConstant.InvalidArgument, "Validation failed for argument "),
    /**
     * 未找到资源
     */
    NOT_FOUND(false, CommonErrorConstant.NotFound, "Resource  not found."),
    /**
     * 未知错误
     */
    UNKNOWN_ERROR(false, CommonErrorConstant.UnknownError, "Unknown server internal error.");


    CommonErrorCode(Boolean success, String code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;

    }

    /**
     * 响应是否成功
     */
    private Boolean success;
    /**
     * 响应状态码
     */
    private String code;
    /**
     * 响应信息
     */
    private String message;


    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    @Override
    public boolean getSuccess() {
        return success;
    }


}

正常请求

错误请求

  1. 调整后的业务异常

  2. 调整未知错误异常

对应代码已经上传更新github

在留一下一个思考问题,如果接口错误需要国际化应该如何实现?

如果你觉得对您有帮助关注公众号,程序员三时 我会给大家不定期分享热门技术,做开源项目,技术交流,面试,学习,分享自己入行多年一些感受和经验文章来源地址https://www.toymoban.com/news/detail-437927.html

到了这里,关于SpringBoot定义优雅全局统一Restful API 响应框架四的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务间请求响应定义方式对比 (Apache Dubbo, IDL 定义,RESTful API)

    1. Apache Dubbo 分布式RPC Apache Dubbo 是一种分布式服务框架,它提供了一种透明的 RPC 机制,可以让服务之间像调用本地方法一样进行调用。Dubbo 使用 IDL 来定义服务接口,并使用各种协议(如 HTTP、Dubbo 协议等)进行通信。 优点: 透明化调用:无需关心服务部署细节,就像调用本

    2024年02月19日
    浏览(43)
  • Forest-声明式HTTP客户端框架-集成到SpringBoot实现调用第三方restful api并实现接口数据转换

    声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层, 是封装调用第三方restful api client接口的好帮手,是retrofit和feign之外另一个选择。 通过在接口上声明注解的方式配置HTTP请求接口。 官网: Forest   代码地址: forest: 声明式HTTP客户端API框架,让

    2024年02月04日
    浏览(115)
  • Java Restful API接口获取请求头、请求体、以及设置响应状态码、应答(响应)体等

    一、获取请求头 接口示例1: 1、从 request 对象中获取请求头: 二、获取请求体 1、从 request 对象中,使用缓冲流读取器、stream流等方式获取请求体 推荐写法一:

    2024年02月16日
    浏览(45)
  • 一站式统一返回值封装、异常处理、异常错误码解决方案—最强的Sping Boot接口优雅响应处理器

    作者:京东物流 覃玉杰 Graceful Response是一个Spring Boot体系下的优雅响应处理器,提供一站式统一返回值封装、异常处理、异常错误码等功能。 使用Graceful Response进行web接口开发不仅可以节省大量的时间,还可以提高代码质量,使代码逻辑更清晰。 强烈推荐你花3分钟学会它!

    2024年02月03日
    浏览(56)
  • springboot全局统一返回处理

    项目中一般都会有规定好的接口返回格式,无论成功与失败,一般格式都是不变的,这样是为了方便前后端统一处理,今天就来说下前后端统一处理的较为优雅的方式; 一般而言都会有一个统一的返回类作为接口的返回数据的封装,例如: 然后我们通过此类作为返回参数的统一封装

    2024年02月13日
    浏览(39)
  • 【规范】SpringBoot接口返回结果及异常统一处理,这样封装才优雅

    博友的需求就是我最大的动力 博友一说话,本狗笑哈哈。 博友要我写啥,我就写啥 。 特来一篇关于 SpringBoot接口返回结果及异常统一处理 ,虽说封不封装都能用,但咱后端也得给前端小姐姐留个好印象不是。项目前后端分离, 规范的数据传输格式,让REST风格的API具有简单

    2024年02月08日
    浏览(42)
  • SpringBoot生成RESTful API文档

    由于我一开始学习的SpringBoot是3以上版本,所以我这里用到的也是支持和SpringBoot3能够整合的SpringDoc 这里先说一下,其实SpringDoc就是Swagger3版本,我一开始整合的2版本,比较麻烦况且最后SpringBoot程序都启动不了了,后面查资料才看到SpringDoc,好使的一批!! 官网地址:http:

    2024年02月08日
    浏览(55)
  • SpringBoot 全局异常统一处理:BindException(绑定异常)

    在Spring Boot应用中,数据绑定是一个至关重要的环节,它负责将HTTP请求中的参数映射到控制器方法的入参对象上。在这个过程中如果遇到问题,如参数缺失、类型不匹配或验证失败等,Spring MVC将会抛出一个 org.springframework.validation.BindException 异常。本文将深入解析 BindExceptio

    2024年01月18日
    浏览(42)
  • Node后端框架Express与Koa接口统一响应封装

    以前在写 SpringBoot 全栈开发的系列文章中全栈开发之后端脚手架:SpringBoot集成MybatisPlus代码生成,分页,雪花算法,统一响应,异常拦截,Swagger3接口文档,有提到对后端接口的响应数据进行统一的封装,方便前端或者第三方进行数据获取与对接工作;统一响应一般包含状态

    2024年02月05日
    浏览(42)
  • 【Go Web开发】Web初识、RESTful架构和RESTful API详解、Gin框架的安装和简单使用

    博主简介: 努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标: 写好专栏的每一篇文章 全称: “万维网”(World Wide Web) 本质: 系统(基于互联网).

    2024年02月03日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包