java接⼝获取请求体,springboot获取接⼝请求中的参数
(@PathVariabl。。。param name
⼀:获取参数
SpringBoot提供的获取参数注解包括:@PathVariable,@RequestParam,@RequestBody,三者的区别如下表:
⽰例代码:
Order:
ity;
public class Order {
private Integer id;
private String name;
private Integer price;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
}
OrderController
ller;
ity.Order;
import org.springframework.web.bind.annotation.*;
@RestController
public class OrderController {
/**
* Get请求的参数可以通过@PathVariable和@RequestParam获取
* @param id 必填
* @param name 必填
* @param price 选填,默认值为0
* @return
*/
@GetMapping("/orders/{id}")
public String getOrder(@PathVariable(value = "id")Integer id,
@RequestParam(value = "name")String name,
@RequestParam(value = "price",required = false,defaultValue = "0") Integer price){ String result = "id:"+id+",name:"+name+",price:"+price;
return result;
}
/**
* Post使⽤@RequestBody注解将Json格式的参数⾃动绑定到Entity类
* @param order
* @return
*/
@PostMapping("/order/check")
public String checkOrder(@RequestBody Order order){
String result = "id:"+Id()+",name:"+Name()+",price:"+Price(); return result;
}
/**
* Post使⽤@RequestParam获取请求体中⾮Json格式的数据
* @param amount
* @param discount
* @return
*/
@PostMapping("/order/checkmore")
public String checkMore(@RequestParam(value = "amount")Integer amount, @RequestParam(value = "discount")float discount){
String result = "amount:"+amount+",discount:"+discount;
return result;
}
/**
* Post请求也可以直接与对象类绑定,但需要参数名⼀致,不⽀持json格式,只⽀持form-data和x-www.form-urlencoded格式
* @param order
* @return
*/
@PostMapping("/order/add")
public String addOrder(Order order){
String result = "id:"+Id()+",name:"+Name()+",price:"+Price();
return result;
}
/**
* Put请求可以直接与对象类绑定,但需要参数名⼀致
* @param id
* @param order
* @return
*/
@PutMapping("/order/{id}/update")
public String updateOrder(@PathVariable(value = "id")Integer id,Order order){
String result = "pathid:"+id+"===Order(id:"+Id()+",name:"+Name()+",price:"+Price()+")";
return result;
}
}
注意点:
1.针对⼀些⾮必填的参数,可以使⽤required关键字来标识,同时必须设置默认值defaultValue,如getOrder⽅法中对price参数的获取:
@RequestParam(value = "price",required = false,defaultValue = "0") Integer price
2.参数可以直接与Entity类绑定,但不⽀持json格式,只⽀持form-data和x-www.form-urlencoded格式
@PostMapping("/order/add")
public String addOrder(Order order){
3.使⽤的Postman做的测试,所有接⼝都测试通过,也推荐⼤家使⽤Postman作为⽇常的接⼝测试⼯具,安装和操作都很简单。附部分截图:
Get:@PathVariable,@RequestParam
Post:@RequestBody
获取到参数以后就是要对数据做校验了,在下⼀篇中进⾏介绍

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。