【发布时间】:2020-08-10 21:58:14
【问题描述】:
我是 Spring Rest 的新手。在进行 POST 时,我们有 2 个选项 @RequestBody 或 @RequestParams。
我的查询不是它们。我很清楚它们是什么。
通常我们将@RequestParams 用于form-urlencoded,@RequestBody 用于JSON/XML。
我有一个场景如下:
class EmployeeDTO {
long id;
String name;
String age;
String address;
String salary;
//Getters and Setters
}
对于 POST,我可以直接使用 as void doSomething(@RequestBody EmployeeDTO){ }
我也可以做同样的事情但使用 5 个 RequestParams
void doSomething(@RequestParam(id) long id,@RequestParam(name)String name,@RequestParam(age)String age,@RequestParam(address)String address,@RequestParam(salary)Stringsalary){ }
我见过一些像 Stripe 这样的好网站,它们在 REST Api 中只关注 @RequestParam。
我实际上明白了我们使用 RequestBody 来处理复杂的输入,@RequestParam 来处理简单的参数。
所以,我的实际查询是:在上面的类中,只有 5 个参数,我认为可以使用 @RequestParam,但是如果有 7 或 10 个输入参数,那么应该我选择了 RequestBody 还是(7 或 10)REquestParam?
编辑:
class Orders {
String id;
Employee employee;
}
【问题讨论】:
标签: spring spring-boot rest spring-mvc spring-data-jpa