| Annotation | Lấy từ | Ví dụ |
|---|---|---|
@PathVariable | URI path segment | GET /users/42 |
@RequestParam | Query string | GET /users?page=2&size=10 |
@RequestBody | Request body (JSON) | POST /users |
java
@RestController
@RequestMapping("/users")
class UserController {
// GET /users/42
@GetMapping("/{id}")
User get(@PathVariable Long id) { ... }
// GET /users?page=0&size=20
@GetMapping
Page<User> list(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "20") int size
) { ... }
// POST /users body: {"name":"Alice"}
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
User create(@RequestBody @Valid CreateUserRequest req) { ... }
}@PathVariable: resource identifier (ID, slug) — bắt buộc.@RequestParam: filter, pagination, sort — optional, có default.@RequestBody: payload phức tạp khi create/update — deserialize JSON → Java object qua Jackson.
| Annotation | Source | Example |
|---|---|---|
@PathVariable | URI path segment | GET /users/42 |
@RequestParam | Query string | GET /users?page=2&size=10 |
@RequestBody | Request body (JSON) | POST /users |
java
@RestController
@RequestMapping("/users")
class UserController {
// GET /users/42
@GetMapping("/{id}")
User get(@PathVariable Long id) { ... }
// GET /users?page=0&size=20
@GetMapping
Page<User> list(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "20") int size
) { ... }
// POST /users body: {"name":"Alice"}
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
User create(@RequestBody @Valid CreateUserRequest req) { ... }
}@PathVariable: resource identifier (ID, slug) — required.@RequestParam: filters, pagination, sorting — optional, can have defaults.@RequestBody: complex payload for create/update — deserialised JSON → Java object via Jackson.