SpringBoot 官方文档示例:(52)内容协商

本文介绍了如何在Spring Boot应用中实现内容协商,通过请求参数或路径后缀来动态选择返回JSON或XML格式的数据。配置了`favor-parameter`和`favor-path-extension`属性,并展示了使用Postman进行接口请求的示例。
摘要由CSDN通过智能技术生成

一、内容协商的含义:通过请求路径中加参数来决定要返回的数据格式为json还是xml.
二、操作步骤:
0.

        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
        </dependency>

1.在配置文件中进行配置:

spring.mvc.contentnegotiation.favor-parameter=true

2.定义一个实体类和返回实体类实例的控制器类:

package com.example;

public class Student {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

package com.example.controller;

import com.example.Student;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PathController {
    
    @GetMapping(value="/projects/spring-boot")
    public Student getStudent(){
        Student s=new Student();
        s.setId(1);
        s.setName("Newton");

        return s;
    }
}

3.通过postman请求接口,分别带format参数,
在这里插入图片描述

在这里插入图片描述

可以看到,format为json时,会返回json字符串,format为xml时,会返回xml字符串.
可以通过如下配置修改这个默认的format参数:

spring.mvc.contentnegotiation.parameter-name=myparam

这样配置之后请求路径就要改为:
http://localhost:8073/projects/spring-boot?myparam=xml

http://localhost:8073/projects/spring-boot?myparam=xml


后缀匹配:
配置:

spring.mvc.contentnegotiation.favor-path-extension=true
spring.mvc.pathmatch.use-suffix-pattern=true

加了这2个配置之后,/projects/spring-boot.json 这个请求可以匹配/projects/spring-boot这个请求路路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值