当前位置: 首页 > news >正文

SpringBoot请求参数与响应返回值,ResponseEntity<T>自定义响应

请求体参数

springboot 请求体参数需要是一个bean(也就是要@service @controler @Resposity注解),才能正确接受前端传过来的json数据.否则就使用Map作为请求体参数类型

返回值

springboot返回值类型,默认只是支持String,List,Map等数据类型作为返回值类型,会经过处理转化成JSON传入给前端.

ResponseEntity

在Spring Boot中,ResponseEntity是一个带有HTTP响应的对象,它封装了响应的状态码、头部信息和响应体。它的主要作用是允许你在控制器方法中灵活地构建和返回HTTP响应。

ResponseEntity的泛型参数<T>表示响应体的类型。你可以指定任何类型作为响应体,包括自定义的Java对象、集合等。

下面是ResponseEntity的一些应用场景:

  1. 自定义HTTP响应:通过使用ResponseEntity,你可以完全控制HTTP响应的状态码、头部信息和响应体。这对于处理特定的业务逻辑或错误情况非常有用。例如,你可以根据条件返回不同的状态码和错误消息。

  2. 返回特定的HTTP状态码:有时候,你可能需要在控制器方法中返回特定的HTTP状态码,例如表示成功、失败、未授权等。使用ResponseEntity,你可以明确指定所需的状态码,并且还可以添加自定义的头部信息。

  3. 返回自定义的响应体:ResponseEntity允许你返回自定义的Java对象作为响应体,而不仅仅局限于简单的字符串或基本类型。这样可以方便地将数据封装为对象,并在响应中返回。

  4. 处理RESTful API:在开发RESTful API时,你可以使用ResponseEntity来构建和返回标准的HTTP响应。这样可以确保你的API遵循RESTful原则,并且能够提供一致的响应格式。

总之,ResponseEntity提供了更灵活和定制化的方式来构建和返回HTTP响应。它适用于各种场景,包括自定义响应、特定状态码的返回以及RESTful API的开发。

ResponseEntity 应用场景

当使用Spring Boot和ResponseEntity时,以下是四个应用场景的示例代码:

  1. 自定义HTTP响应:
@GetMapping("/custom-response")
public ResponseEntity<String> customResponse() {
    boolean condition = true; // 假设某个条件为true

    if (condition) {
        HttpHeaders headers = new HttpHeaders();
        headers.add("Custom-Header", "Custom Value");

        return ResponseEntity.status(HttpStatus.OK)
                .headers(headers)
                .body("Custom response");
    } else {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST)
                .body("Invalid request");
    }
}

在上述示例中,当条件为true时,使用ResponseEntity返回状态码200(OK),自定义的头部信息,以及响应体"Custom response"。当条件为false时,返回状态码400(Bad Request)和响应体"Invalid request"。

  1. 返回特定的HTTP状态码:
@GetMapping("/specific-status")
public ResponseEntity<String> specificStatus() {
    boolean condition = true; // 假设某个条件为true

    if (condition) {
        return ResponseEntity.ok("Success");
    } else {
        return ResponseEntity.status(HttpStatus.UNAUTHORIZED)
                .body("Unauthorized");
    }
}

在上述示例中,根据条件的不同结果,使用ResponseEntity返回不同的HTTP状态码。当条件为true时,返回状态码200(OK)和响应体"Success";当条件为false时,返回状态码401(Unauthorized)和响应体"Unauthorized"。

  1. 返回自定义的响应体:
@GetMapping("/custom-body")
public ResponseEntity<User> customBody() {
    User user = new User("John", "Doe"); // 假设有一个自定义的User类

    return ResponseEntity.ok(user);
}

在上述示例中,使用ResponseEntity返回一个自定义的Java对象(这里假设为User类)作为响应体。ResponseEntity.ok()方法表示成功状态码200(OK),并将user对象作为响应体返回。

  1. 处理RESTful API:
@GetMapping("/rest-api")
public ResponseEntity<List<User>> getUsers() {
    List<User> users = userService.getAllUsers(); // 假设从数据库获取用户列表

    return ResponseEntity.ok(users);
}

在上述示例中,使用ResponseEntity返回一个包含用户列表的Java对象(这里假设为List<User>)作为响应体。ResponseEntity.ok()方法表示成功状态码200(OK),并将users列表作为响应体返回。

以上示例展示了ResponseEntity在不同场景下的应用。你可以根据具体需求和业务逻辑,灵活使用ResponseEntity构建并返回符合要求的HTTP响应。

相关文章:

  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • Postman+Newman+Jenkins实现接口测试持续集成
  • C#中.NET 7.0 Windows窗体应用通过EF访问新建数据库
  • Java NIO 详解
  • 蓝牙耳机仓设计的单芯片解决方案
  • C++中tuple数据结构使用
  • 编译中的 CMP0148 警告
  • 基于STC12C5A60S2系列1T 8051单片机的数模芯片DAC0832实现数模转换应用
  • Python---函数的作用,定义,使用步骤(调用步骤)
  • 《C++避坑神器·二十二》VS能正常运行程序,但运行exe程序无响应解决办法
  • Spring条件注解@Conditoinal+ Profile环境切换应用@Profile
  • SQL之开窗函数
  • Git常用操作-MD
  • 基于pytest-bdd的项目目录结构和命名规范
  • Jmeter 性能测试基础!
  • Vertx-EventBus篇
  • 如何通过数据治理来提升业务价值——业务场景治理
  • AI视频检索丨历史视频标签化,助力重要事件高效溯源
  • oracle 不支持的字符集 orai18n.jar ZHS16GBK 异常问题解决
  • IDEA写mybatis程序,java.io.IOException:Could not find resource mybatis-config.xml
  • 上海静安将发放七轮文旅消费券,住宿券最高满800元减250元
  • 陈吉宁龚正黄莉新胡文容等在警示教育基地参观学习,出席深入贯彻中央八项规定精神学习教育交流会
  • 人才争夺战,二三线城市和一线城市拼什么?洛阳官方调研剖析
  • 联合国秘书长欢迎中美经贸高层会谈成果
  • 第四届长三角国际应急博览会开幕,超3000件前沿装备技术亮相
  • 学者的“好运气”:读本尼迪克特·安德森《椰壳碗外的人生》