【发布时间】:2022-10-26 02:52:38
【问题描述】:
我只是想知道我们如何使用 Spring boot 在消息体中传递多个变量或参数。
想在邮递员中传递两个以上的变量作为参数。
【问题讨论】:
-
请提供足够的代码,以便其他人可以更好地理解或重现该问题。
标签: spring-boot variables parameters postman
我只是想知道我们如何使用 Spring boot 在消息体中传递多个变量或参数。
想在邮递员中传递两个以上的变量作为参数。
【问题讨论】:
标签: spring-boot variables parameters postman
Spring Boot 不支持多请求体。
【讨论】:
不确定我是否理解这个问题,但是有很多方法可以将参数传递给 API。
作为 JSON 对象
如果您只想传递多个参数,您只需在请求正文中以 json 格式将它们作为 post 或 put 传递:
{
"firstName": "bob",
"lastName": "smith",
"middleName": "joe"
}
你的控制器方法看起来像
public Name createName(
@RequestBody Name name
) {}
作为 JSON 列表
如果您的意思是同一个参数有多个值,那么您可以将它们作为列表传递。
[
{"firstName": "bob"},
{"firstName": "joe"},
{"firstName": "jerry"}
]
你的控制器方法看起来像
public List<Name> nameList createName(
@RequestBody List<Name> nameList
) {}
或者
{
"firstNames": [
{"firstName": "bob"},
{"firstName": "joe"},
{"firstName": "jerry"}
]
}
你的控制器方法看起来像
public Names createName(
@RequestBody Names names
) {}
在此示例中,Names 将是一个包含变量的对象
List<Name> nameList;
在 uri
将值传递给 api 的另一个选项是将它们包含在路径参数中 从邮递员那里,您的 uri 看起来像这样:
在 API 上使用 @RequestParam
http://localhost:8080/apiPath?firstName=bob&lastName=smith&middleName=joe
或者
在 API 上使用 @PathVariable
http://localhost:8080/apiPath/firstName/bob/lastName/smith/middleName/joe
【讨论】: