SpringBoot项目中rest接口定义与参数传递和接收方式

 更新时间:2026年04月02日 09:04:44   作者:撞撞~  
本文介绍了使用RestClient测试接口的两种方式:form-data和content-type,form-data适用于所有请求方式,但URL长度有限制,content-type只适用于POST/DELETE/PUT请求,处理application/json格式参数,对于参数较多的情况,建议使用JavaBean接收

建议使用rest Client测试接口

方式一:form-data形式

参数以key-value形式传递,参数和值会直接拼接到请求url后边显示存在(POST http://localhost:8080/users/insert?id=5&userName=刘明);

适用于所有请求方式;

后台接收参数时使用注解@RequestParam

POST

提交资源时一般post请求方式,当然所有的增删改也可已使用post请求

使用@RequestParam(value = “key”) 绑定请求参数到方法入参时,参数名可以不与前台key一致

@RestController
@RequestMapping("/users")
public class UsersController {
    @PostMapping("/insert")
    public RestResult insertUserInfo(@RequestParam("userId") int id, String userName, String passWord, int age,String sex, String phone) {...}
}

请求参数可以这样显示接收,也可以从 request 中获取

insertUserInfo(HttpServletRequest request) {
        String userId = request.getParameter("userId");
        String phone = request.getParameter("phone");
		...
}

如果请求参数为定义的对象属性时,可以直接使用对象接收参数

public class User {
    private int id;
    private String userName;
    private String passWord;
    private int age;
    private String sex;
    private String phone;
}
@PostMapping("/insert")
    public RestResult insertUserInfo(User user) {...}

DELETE

删除资源

使用@PathVariable 获取url路径中的参数

@DeleteMapping("/delete/{id}")
public RestResult deleteUser(@PathVariable("id") int userId) {...}

PUT

更新资源

@PutMapping("/update/{id}")
public RestResult updateUser(@PathVariable int id, String phone) {...}

GET

获取资源

@GetMapping("/query/{id}")
    public RestResult queryUser(@PathVariable int id) {...}

方式二、content-type形式

因为GET请求头中无content-type字段,所以此种方式只适用于POST/DELETE/PUT请求,用来处理:applicatin/json格式的参数

参数以json形式传递,后台获取参数时使用注解@RequestBody

@PostMapping("/insert")
    public RestResult insertUserInfo(@RequestBody User user) {...}

我们也可以使用@JsonProperty 注解来绑定Json中的key和Bean实体的属性

这时候,前台在传递参数时,可以使用与属性名一致,也可以与注解中的value一致

但是这里得注意:这里返回给前台的json对象中的key将会是直接中的值

public class User {
    private Integer id;
    @JsonProperty("name")
    private String userName;
    @JsonProperty("pass")
    private String passWord;
    private Integer age;
    private String sex;
    private String phone;
}

总结

很明显,方式一在传递参数时,如果传入的参数太长时,或许会超过某些浏览器与服务器对URL的长度限制,会导致请求失败,因此在实际应用中,对于GET请求我们一般使用form表单形式传递参数,POST/DELETE/PUT请求我们考虑使用方式二;

对于请求参数过多的,我们可以使用Java Bean来接收参数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot redis使用lettuce配置多数据源的实现

    springboot redis使用lettuce配置多数据源的实现

    这篇文章主要介绍了springboot redis使用lettuce配置多数据源的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Spring boot route Controller接收参数常用方法解析

    Spring boot route Controller接收参数常用方法解析

    这篇文章主要介绍了Spring boot route Controller接收参数常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java多线程Runable售票系统实现过程解析

    Java多线程Runable售票系统实现过程解析

    这篇文章主要介绍了Java多线程Runable售票系统实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java实现微信网页授权的示例代码

    Java实现微信网页授权的示例代码

    这篇文章主要介绍了Java实现微信网页授权的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Spring集成MongoDB的两种方法实例

    Spring集成MongoDB的两种方法实例

    最近使用到了Spring框架,考虑到数据的格式并非有固定的字段格式,因此考虑到使用MongoDB非关系型数据库存储数据,所以这篇文章主要给大家介绍了Spring集成MongoDB的两种方法,需要的朋友可以参考下
    2021-09-09
  • Java中unsafe操作实例总结

    Java中unsafe操作实例总结

    本篇文章给大家分享了关于Java中unsafe操作的相关知识点以及相关的实例代码,有需要的朋友可以学习参考下。
    2018-03-03
  • 使用 mybatis 自定义日期类型转换器的示例代码

    使用 mybatis 自定义日期类型转换器的示例代码

    这篇文章主要介绍了使用 mybatis 自定义日期类型转换器的示例代码,这里使用mybatis中的typeHandlers 实现的,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 编程语言榜单Java与Python并列第二!Julia下滑

    编程语言榜单Java与Python并列第二!Julia下滑

    日新月异的技术圈,随着云、大数据、人工智能等主流技术的广泛应用,作为开发利器的编程语言的最新发展趋势也在无形中发生了变化,本文主要介绍了java、Python、Julia等语言在Resmonk榜单的排名
    2021-08-08
  • Spring MVC温故而知新系列教程之从零开始

    Spring MVC温故而知新系列教程之从零开始

    Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话,那可真令人忧伤。下面这篇文章主要给大家介绍了关于Spring MVC从零开始的相关资料,需要的朋友可以参考下
    2018-05-05
  • 一文梳理Java超大型文件读取的18种方法和性能

    一文梳理Java超大型文件读取的18种方法和性能

    这篇文章主要为大家详细介绍了Java中超大型文件读取的18种方法和性能对比,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02

最新评论