重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介)

重生之 SpringBoot3 入门保姆级学习(14、内容协商基础简介)

3.3 内容协商

3.3.1 基础简介


默认规则

  • 基于请求头的内容协商(默认开启)
    • 客户端向服务器发送请求,携带 HTTP 标准的 Accept 请求头
    • Accept:appliaction/jsontext/xmltext/yaml
    • 服务端会根据客户请求头期望的数据类型进行动态返回
  • 基于请求参数内容协商(需要开启)
    • 发送请求 GET/person?format=json
    • 匹配到 @GetMapping(“/person”)
    • 跟模参数协商,优先返回JSON类型数据 【需开启参数匹配设置】
    • 发送请求 GET/person?format=xml,优先返回 xml 类型数据

image-20240602130325689

3.3.2 演示效果


  • 创建 Person 类
package com.zhong.web.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @ClassName : Person
 * @Description :
 * @Author : zhx
 * @Date: 2024-06-02 13:05
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private Integer id;
    private String userName;
    private String like;
    private Integer age;
}
  • 创建 GetPersonController
package com.zhong.web.controller;

import com.zhong.web.dto.Person;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName : GetPersonController
 * @Description :
 * @Author : zhx
 * @Date: 2024-06-02 13:07
 */
@RestController
public class GetPersonController {

    @GetMapping("/person")
    public Person getPerson() {
        Person person = new Person();
        person.setId(1);
        person.setUserName("小钟");
        person.setAge(23);
        person.setLike("小王");
        return person;
    }
}
  • 重新启动应用浏览器测试
http://localhost:8080/person

image-20240602131210408

默认发回数据类型为 json 若想返回 xml 类型可以做下面的操作

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 06:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 06:06:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 06:06:02       82 阅读
  4. Python语言-面向对象

    2024-06-06 06:06:02       91 阅读

热门阅读

  1. 函数也能当变量?Python一等函数让你大开眼界!

    2024-06-06 06:06:02       27 阅读
  2. Spring Bean参数校验Validator

    2024-06-06 06:06:02       31 阅读
  3. Apache Calcite - 使用内置函数

    2024-06-06 06:06:02       32 阅读
  4. json.dumps参数

    2024-06-06 06:06:02       31 阅读
  5. ArrayList和LinkedList对比,ArrayList使用注意事项

    2024-06-06 06:06:02       28 阅读
  6. linux中基于docker安装RabbitMQ。

    2024-06-06 06:06:02       30 阅读
  7. 学习笔记 SD卡(1)

    2024-06-06 06:06:02       23 阅读
  8. UOS开通22端口用于SSH

    2024-06-06 06:06:02       27 阅读
  9. 阿里云盘手机批量修改文件名

    2024-06-06 06:06:02       25 阅读