반응형
도서관 유저 생성 API 개발 📚
API 개발은 백엔드 개발에서 중요한 역할을 합니다. 오늘은 Spring Boot를 활용해 간단한 도서관 유저 생성 API를 개발하는 과정을 설명하겠습니다. 이 포스팅은 HTTP 요청 처리부터 예외 처리까지 한 번에 다룹니다! 🚀
1. 요구사항 및 설계 ⚙️
요구사항
- HTTP Method: POST
- HTTP Path:
/user
- HTTP Body: JSON 형식으로 이름과 나이를 입력받음
{ "name": String(필수), "age": Integer(선택) }
- 결과 반환: 없음 (
HTTP 200 OK
만 반환)
2. DTO 설계: UserCreateRequest 클래스 🗂️
데이터를 안전하게 전달하기 위해 DTO(Data Transfer Object)를 생성합니다.
코드
package org.zerock.libraryapp.dto.user.request;
public class UserCreateRequest {
private String name; // 이름
private Integer age; // 나이 (null 가능)
// Getter
public String getName() {
return name;
}
public Integer getAge() {
return age;
}
}
설명
name
:null
값 허용 불가 (필수값)age
:null
허용 (선택값)- Java의 Integer 타입을 사용해
null
값 처리 가능
3. 도메인 설계: User 클래스 👤
비즈니스 로직을 처리하는 User 엔티티 클래스를 생성합니다.
코드
package org.zerock.libraryapp.domain.user;
public class User {
private String name; // 이름
private Integer age; // 나이
public User(String name, Integer age) {
if (name == null || name.isBlank()) {
throw new IllegalArgumentException(String.format("잘못된 name(%s)이 들어왔습니다.", name));
}
this.name = name;
this.age = age;
}
}
설명
- 예외 처리:
name
이null
이거나 비어 있는 값(isBlank
)일 경우 예외 발생IllegalArgumentException
사용해 상세 오류 메시지 제공
4. 컨트롤러 설계: UserController 클래스 🎛️
API 엔드포인트를 정의하는 컨트롤러를 작성합니다.
코드
package org.zerock.libraryapp.controller.user;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.zerock.libraryapp.domain.user.User;
import org.zerock.libraryapp.dto.user.request.UserCreateRequest;
import java.util.ArrayList;
import java.util.List;
@RestController
public class UserController {
private final List<User> users = new ArrayList<>();
@PostMapping("/user") // POST /user
public void saveUser(@RequestBody UserCreateRequest request) {
users.add(new User(request.getName(), request.getAge()));
}
}
설명
@PostMapping
:/user
경로로 POST 요청을 처리@RequestBody
: JSON 요청 바디를 매핑- 메모리 저장: 예제에서는 간단히
List<User>
에 저장 (실제 개발에서는 데이터베이스 활용)
5. 전체 흐름 요약 📑
- 클라이언트가
/user
경로로 POST 요청을 보냄.{ "name": "홍길동", "age": 25 }
UserController
에서 요청을 받아 User 객체 생성 및 저장.name
이 유효하지 않으면 예외 발생.- 성공 시 HTTP 200 OK 반환.
마무리: 핵심 정리 ✅
- DTO(UserCreateRequest): 요청 데이터를 안전하게 전달.
- 도메인(User): 유효성 검증 및 비즈니스 로직 처리.
- 컨트롤러(UserController): HTTP 요청 처리 및 저장.
반응형
'자바와 스프링 부트로 생애 최초 서버 만들기' 카테고리의 다른 글
#11 도서관 유저 조회 API 개발과 테스트 24.12.18 (0) | 2025.02.12 |
---|---|
#10 도서관 유저 생성 API 개발 24.12.18 (0) | 2025.02.12 |
#9 POST API 개발 및 테스트! 24.12.18 (0) | 2025.02.12 |
#8 Spring Boot로 GET API 24.12.18 (0) | 2025.02.12 |
#7 API란 무엇인가? 24.12.18 (0) | 2025.02.12 |