springboot的restful接口成功失败返回值设计

本文详述SpringBoot RESTful接口返回值设计,采用ResponseEntity封装,介绍统一的返回对象Result,包含code、message、data属性,适用于成功与失败场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot的restful接口最终返回值ResponseEntity

springboot的restful接口最终的返回值都是ResponseEntity,调用者关心的是状态码和结果.ResponseEntity继承自HttpEntity,继承了body也就是结果,新加属性status也就是状态码.

ResponseEntity赋值

  • status默认200.
  • 接口返回值会被封装到body中

接口返回值设计

所有返回状态码都是200,接口返回值定义成一个统一的对象三个属性code,message,data。接口调用成功有用信息code和data(如果需要返回值);接口调用失败有用信息code和message.

  • code:业务码定义业务操作的结果
  • message:错误信息
  • data:成功的返回值
/**
 * 返回值对象
 */
public class Result {
   /**
     * 响应码
     */
    private String code;
    /**
     * 错误消息
     */
    private String message;
    /**
     * 数据
     */
    private Object data;

    public Result setCode(String code) {
        this.code = code;
        return this;
    }

    public Result setMessage(String message) {
        this.message = message;
        return this;
    }


    public Result setData(Object data) {
        this.data = data;
        return this;
    }

    private static final String UNKNOWN_ERROR_MESSAGE = "unknown error";

    /**
     * 成功无返回值
     * @return Result
     */
    public static Result ok() {
        return new Result().setCode(ResultCodeConstant.SUCCESS);
    }

    /**
     * 成功有返回值
     * @return Result
     */
    public static Result ok(Object data) {
        return new Result().setCode(ResultCodeConstant.SUCCESS).setData(data);
    }

    /**
     * 属性校验失败,错误信息message
     * @return Result
     */
    public static Result bad(String message) {
        return new Result().setCode(ResultCodeConstant.FIELD_ILLEGAL).setMessage(message);
    }

    /**
     * SQL异常,异常信息message
     * @return Result
     */
    public static Result error(String message) {
        return new Result().setCode(ResultCodeConstant.SQL_FAILURE).setMessage(message);
    }

    /**
     * 通用:自定义状态码,说明,返回值
     * @return Result
     */
    public static Result build(String code, String message, Object data) {
        return new Result().setCode(code).setMessage(message).setData(data);
    }
}
/**
 * 业务响应码
 */
public class ResultCodeConstant {
    /** 成功 */
    public static final String SUCCESS = "0000";
    /** 参数不合法 */
    public static final String FIELD_ILLEGAL = "1000";
    /** sql执行失败 */
    public static final String SQL_FAILURE = "2000";
}

import org.springframework.web.bind.annotation.*;
/**
 * 接口
 */
@RestController
@RequestMapping("/demo")
public class DemoController{

	@DeleteMapping
    @Override
    public Result deleteBatchIds(@RequestParam List<Long> ids) {
        if (ids == null && ids.size == 0) {
            logger.error("ids is required.");
            return Result.bad("ids is required.");
        }
        //TODO 处理ids
        return Result.ok();//return Result.error("message");
    }
}
Spring Boot 是一个基于 Spring 框架的快速开发框架,它可以帮助开发者快速构建一个可用的、高效的、可扩展的应用程序。下面是 Spring Boot 项目的分析、设计、实现和测试过程。 ## 1. 分析 在分析阶段,我们需要确定项目的需求和目标,制定项目计划和时间表,了解项目所需的技术栈和资源。 ### 1.1 需求和目标 在这个阶段,我们需要确定项目的需求和目标,包括项目的功能、特性、性能、安全性和可扩展性等方面。我们需要和客户或者业务方沟通,了解他们的需求和期望,以便我们能够制定合适的项目计划和解决方案。 ### 1.2 项目计划和时间表 在了解项目的需求和目标之后,我们需要制定项目计划和时间表,包括项目的里程碑、开发周期、测试周期和上线时间等方面。这样可以帮助我们更好地组织开发工作和控制项目进度。 ### 1.3 技术栈和资源 在分析阶段,我们需要了解项目所需的技术栈和资源,包括开发工具、开发语言、数据库、服务器等方面。我们需要评估各种技术的优缺点,选择最适合我们项目的技术栈和资源。 ## 2. 设计设计阶段,我们需要制定项目的架构,确定项目的模块和组件,设计数据库和接口等。 ### 2.1 架构设计 在架构设计阶段,我们需要确定项目的整体架构,包括前端、后端、数据库、缓存等方面。我们需要根据项目的需求和目标,选择合适的架构模式,例如 MVC、RESTful 等。 ### 2.2 模块和组件设计 在模块和组件设计阶段,我们需要确定项目的功能模块和组件,例如用户管理模块、订单管理模块、支付组件、邮件组件等。我们需要根据功能需求,设计合适的模块和组件,使其具有高内聚、低耦合的特性。 ### 2.3 数据库设计 在数据库设计阶段,我们需要设计项目所需的数据库结构,包括表结构、索引、关系等方面。我们需要根据项目的需求和目标,选择合适的数据库类型,例如 MySQL、Oracle、MongoDB 等。 ### 2.4 接口设计接口设计阶段,我们需要设计项目的接口,包括请求和响应数据的格式、参数、返回值等方面。我们需要根据项目的需求和目标,设计合适的接口,使其具有易用、安全、可扩展等特性。 ## 3. 实现 在实现阶段,我们需要开始编写代码,实现设计阶段的方案。 ### 3.1 编码 在编码阶段,我们需要根据设计阶段的方案,编写代码并测试。我们需要遵循编码规范,保持代码的可读性、可维护性和可扩展性。 ### 3.2 单元测试 在编码阶段完成后,我们需要进行单元测试,测试每个模块和组件的功能是否符合设计要求。我们需要编写测试用例,并使用 JUnit 等测试工具进行测试。 ### 3.3 集成测试 在单元测试完成后,我们需要进行集成测试,测试整个系统的功能是否符合设计要求。我们需要模拟实际场景,测试系统的性能、稳定性和可靠性等方面。 ## 4. 测试 在测试阶段,我们需要进行验收测试,测试整个系统是否符合需求和目标。我们需要与客户或者业务方沟通,了解他们的反馈和意见,对系统进行调整和优化。 ## 5. 总结 在完成项目后,我们需要总结项目的经验和教训,以便更好地应对未来的项目。我们需要评估项目的成果、成本和效益,总结项目的成功失败因素,为下一个项目做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那你为何对我三笑留情

感谢支持,沉淀自己,帮助他人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值