개발
controller - request 정리
제이G
2024. 4. 20. 11:53
Path Variable
/api/orders/{id}/accept
@RestController
@RequestMapping("/api/orders")
public class OrderRestController {
@GetMapping("/{id1}/{id2}")
public void findById(@PathVariable(value = "id1") final Long orderId,
@PathVariable(value = "id2") final Long temp
) {
// something..
}
}
Request Body
/api/orders/{id}/reject
request body
{
"key" : "value"
}
@RestController
@RequestMapping("/api/orders")
public class OrderRestController {
@PatchMapping("/{id}/reject")
public void reject(@PathVariable(value = "id") final Long orderId,
@RequestBody OrderRejectRequest orderRejectRequest
) {
// something..
}
}
public record OrderRejectRequest(String message) {
}
Query String
/api/orders?offset=3&size=10&ids=1,2,3
@RestController
@RequestMapping("/api/orders")
public class OrderRestController {
// query string - @RequestParam
@GetMapping("/ver1")
public void findAllVer1(@RequestParam final Long offset,
@RequestParam final Integer size,
@RequestParam final List<Integer> ids
) {
// something ..
}
// query string - Object Binding
// if want customize like initial value set or validation etc,
// should override HandlerMethodArgumentResolver & register Bean
@GetMapping("/ver2")
public void findAllVer2(final SearchCondition searchCondition) {
// something ..
}
// query string - mix
@GetMapping("/ver3")
public void findAllVer3(@RequestParam final Long offsettt,
final SearchCondition searchCondition
) {
// something ..
}
}