이 서비스는 JDBC Template이라는 SQL 매퍼를 사용하여 MySQL 데이터베이스에 접근하여,
일정 생성, 조회, 수정, 삭제 (CRUD) API를 제공합니다.
아래 링크를 통해 각 단계별 브랜치로 이동하여 코드를 확인하실 수 있습니다.
단계 | 내용 |
---|---|
Level 1, 2ㅤㅤㅤ | (🎁 feature) 사용자는 일정을 CRUD 할 수 있다. |
Level 3ㅤㅤㅤ | (🛠 refactor) 작성자를 일정과 분리해서 관리 |
Level 4ㅤㅤㅤㅤ | (🛠 refactor) 효율적으로 표시하기 위해 데이터를 여러 페이지로 나눔 |
Level5, 6ㅤㅤㅤㅤ | (🎁 feature) 예외 발생에 대한 적절한 코드를 응답하고, 요청에 대해 검증한다 |
erDiagram
Member {
bigint id PK "고유 식별자"
varchar name "이름"
varchar email "이메일"
varchar password "비밀번호"
datetime created_at "회원가입 시간"
datetime updated_at "정보변경 시간"
}
Schedule {
bigint id PK "고유 식별자"
bigint member_id FK "멤버 참조"
varchar content "내용"
datetime created_at "등록 시간"
datetime updated_at "수정 시간"
}
Member ||--o{ Schedule: " "
[Member DDL 바로가기]
[Schedule DDL 바로가기]
METHOD | URI | DESCRIPTION | 요청 | 응답 |
---|---|---|---|---|
POST |
/api/schedules | 일정 생성 |
{ "content": "생성할 데이터" } |
201 Created
Location: /api/schedules/1 |
GET |
/api/schedules | 모든 일정 조회 | ?page={page}&size={size} |
200_OK
body{ "content":[{ "id": 1, "author": "yeim", "content": "사용자 입력 데이터", "createdAt": "2024-12-06T20:39:46", "updatedAt": "2024-12-10T01:42:57" }, ...], "currentPage": 0, "pageSize": 10, "totalElements": 11, "totalPages": 2 } |
GET |
/api/schedules/{id} | 특정 일정 조회 |
200 OK
body{ "id": 1, "author": "yeim", "content": "사용자 입력 데이터", "createdAt": "2024-12-06T20:39:46", "updatedAt": "2024-12-10T01:42:57" } |
|
PUT |
/api/schedules/{id} | 일정 수정 |
{ "content": "수정된 데이터", "password": "password123" } |
200 OK
body{ "id": 1, "author": "yeim", "content": "수정된 데이터", "createdAt": "2024-12-06T20:39:46", "updatedAt": "2024-12-10T01:42:57" } |
DELETE |
/api/schedules/{id} | 일정 삭제 |
{ "password": "password123" } |
204 No Content |