RESTful API 설계란?
REST(Representational State Transfer)는 웹 표준을 기반으로 하는 API 설계 아키텍처!
RESTful API는 네트워크 상에서 클라이언트와 서버 간의 통신을 위해 자원(Resource)의 상태를 전달하는 방법
클라이언트가 서버의 자원에 접근하고 이를 활용할 수 있도록 하는 역할을 함
각 자원은 명확한 URI로 식별되어야 함 = 자원의 식별
URl는 명사를 사용해야 한다. ex) /getUsers 대신 /users
GET - 조회
POST - 생성
PUT - 수정(업데이트)
DELETE - 삭제
@PathVariable
URL 경로에 포함된 변수를 컨트롤러 메서드의 매개변수로 바인딩 하는 데 사용
URL 경로의 일부를 변수로 사용하여, 동적으로 변하는 URL 경로를 처리 가능
간결하고 직관적인 API 경로를 설계 가능
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{userId}")
public String getUser(@PathVariable("userId") Long userId) {
return "User ID: " + userId;
}
}
@RequestParam
클라이언트가 전송하는 HTTP 요청 파라미터를 컨트롤러 메서드의 매개변수로 바인딩 하는 데 사용
URL에서 지정된 이름의 파라미터를 메서드 매개변수로 전달
필수 여부, 기본값 설정 등의 추가적인 설정이 가능
@GetMapping("/products")
public String getProduct(@RequestParam("id") Long productId) {
// productId를 사용한 로직 처리
}
@ModelAttribute
요청 파라미터를 객체로 매핑하여, 복잡한 데이터 구조를 쉽게 다루게 해준다
폼 데이터의 각 필드가 객체의 필드와 자동으로 매핑됨
복잡한 객체 구조의 데이터를 간편하게 처리 가능
javaCopy code
@PostMapping("/register")
public String registerUser(@ModelAttribute User user) {
// user 객체를 사용한 로직 처리
}
@RequestBody
클라이언트가 전송하는 HTTP 요청의 본문(body)을 Java 객체로 변환
HTTP 요청 본문의 내용을 자바 객체로 역 직렬화
JSON 형식의 데이터 처리에 사용
javaCopy code
@PostMapping("/api/user")
public String apiUser(@RequestBody User user) {
// user 객체를 사용한 로직 처리
}
Dispatcher-Servlet
- 클라이언트 요청이 디스페쳐 서블릿으로 들어옴
- Handler Mapping을 통해 어떤 Controller로 매핑할지 확인
- Handler Adapter를 사용해 Controller로 요청 전달
- Service 단에서 비지니스 로직을 사용 (보통 Database CRUD 진행)
- 컨트롤러가 ResponseEntity 반환
- 서버 응답을 클라이언트로 반환
'TIL' 카테고리의 다른 글
TIL - 2024/09/26 (0) | 2024.09.27 |
---|---|
TIL - 2024/09/25 (0) | 2024.09.25 |
TIL - 2024/09/23 (0) | 2024.09.23 |
TIL - 2024/09/20 (0) | 2024.09.20 |
TIL - 2024/09/19 (0) | 2024.09.19 |