我正在使用 Spring Boot 开发 REST api。我有一个接受 POST 请求的 Controller 。
在上面的请求中,我想访问参数ride_transection_id
来查找特定的横断面对象以及其他一些值。
所以基本上我有 3 种方法来做到这一点。
1.我可以使用@PathVariable
@RequestMapping(value = "/end-ride", method = RequestMethod.POST)
public ResponseEntity<?> endRide(@PathVariable("ride_transection_id") long ride_transection_id,@RequestBody
SomeDTORequest someDTORequest ) {
//find transaction using path varibale
}
2.我可以使用@RequestParam
@RequestMapping(value = "/end-ride", method = RequestMethod.POST
public @ResponseBody item getitem(@RequestParam("ride_transection_id")
long ride_transection_id,@RequestBody SomeDTORequest someDTORequest ){
//find transaction using RequestParam varibale
}
我可以使用 DTO 对象
SomeDTORequest
并接受具有其他值的ride_transection_id
。@RequestMapping(value = "/end-ride", method = RequestMethod.POST) public ResponseEntity<?> endRide(@RequestBody SomeDTORequest someDTORequest ) { //find transaction using path someDTORequest .getID()
}
我有点困惑。只是想问一下访问 ride_transection_id
哪种方法最安全、最正确?
谢谢
最佳答案
您可以使用其中任何一种,但每种方式都是针对特定用途而设计的。
路径变量:
当您需要使用某个字段访问实体时使用,例如我想访问订单,并且该订单由 id 定义,因此要访问该订单,我需要以下请求 Get/order/{id}
请求参数:
当您想为特定方法发送特定变量或标志时
例如 Get/orders?is_shipped=true
,因此这将获取所有已发货的订单,或者您可能需要特定页面的订单 Get/orders?page=1
请求正文:
当您需要通过 put 或 patch 请求更新实体时,您将使用实体的 json 表示来更新实体,该表示可以通过请求正文发送
例如 PUT/orders/{id}
正文:{"title": "order_1"}
那么 ID 为 {id} 的订单将更新为新标题
关于spring - 在 Spring Boot Rest 中检索查询参数的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47392803/