공통 정보
- Content-Type: application/json
📅 Schedule API
1-1. 일정 생성
- Method:
POST
- URL:
/schedules
Request Body
{
"title": "일정제목",
"content": "일정내용"
}
설명
- 로그인한 사용자가 새로운 일정을 생성합니다.
- 작성자 정보는 요청 body가 아니라 세션 사용자 기준으로 처리됩니다.
1-2. 일정 단건 조회
- Method:
GET
- URL:
/schedules/{scheduleId}
Example
GET /schedules/1
설명
1-3. 일정 전체조회(페이지네이션)
- Method:
GET
- URL:
/schedules/page
Query Parameters
| 이름 | 타입 | 설명 | 예시 |
|---|
| page | number | 페이지 번호 | 0 |
| size | number | 페이지 크기 | 10 |
Example
GET /schedules/page?page=0&size=10
설명
- 일정 목록을 페이지 단위로 조회합니다.
- 각 일정의 댓글 수까지 함께 조회합니다.
1-4. 일정 수정
- Method:
PATCH
- URL:
/schedules/{scheduleId}
Example
PATCH /schedules/13
Request Body
{
"title": "수정 제목",
"content": "수정 내용"
}
설명
- 로그인한 사용자만 자신의 일정을 수정할 수 있습니다.
- 일정 작성자와 세션 사용자가 일치해야 합니다.
1-5. 일정 삭제
- Method:
DELETE
- URL:
/schedules/{scheduleId}
Example
DELETE /schedules/12
설명
- 로그인한 사용자만 자신의 일정을 삭제할 수 있습니다.
- 삭제 전에 해당 일정의 댓글을 먼저 삭제한 후 일정을 삭제합니다.
- 이를 통해 외래키 제약 오류를 방지합니다.
2-1. 댓글 생성
- Method:
POST
- URL:
/comments
Request Body
{
"content": "댓글내용",
"scheduleId": 4
}
설명
- 로그인한 사용자가 특정 일정에 댓글을 작성합니다.
- 작성자 정보는 세션 사용자 기준으로 처리합니다.
2-2. 일정별 댓글 조회
- Method:
GET
- URL:
/comments/schedules/{scheduleId}
Example
GET /comments/schedules/4
설명
- 특정 일정에 등록된 댓글 목록을 조회합니다.
- 수정일 기준 내림차순으로 조회됩니다.
👤 User API
3-1. 회원가입
Request Body
{
"userName": "홍길동",
"email": "test1234@naver.com",
"password": "password"
}
설명
- 새로운 사용자를 생성합니다.
- 이메일 중복 검사 후 저장합니다.
- 비밀번호는 암호화되어 저장됩니다.
3-2. 사용자 단건 조회
- Method:
GET
- URL:
/users/{userId}
Example
GET /users/1
설명
3-3. 사용자 전체 조회
설명
3-4. 사용자 수정
- Method:
PATCH
- URL:
/users
Request Body
{
"userName": "수정사용자",
"email": "updatedtest123@naver.com"
}
설명
- 로그인한 사용자만 자신의 정보를 수정할 수 있습니다.
- 세션에 저장된 사용자 정보를 기준으로 수정합니다.
3-5. 사용자 삭제
- Method:
DELETE
- URL:
/users/{userId}
Example
DELETE /users/3
설명
- 로그인한 사용자만 자신의 계정을 삭제할 수 있습니다.
- 요청한 userId 와 세션 사용자가 일치해야 합니다.
🔐 Auth API
4-1. 로그인
- Method:
POST
- URL:
/auth/login
Request Body
{
"email": "test1234@naver.com",
"password": "password"
}
설명
- 이메일과 비밀번호를 검증합니다.
- 로그인 성공 시 세션이 생성됩니다.
- 이후 인증이 필요한 요청에서 세션 정보를 사용합니다.
4-2. 로그아웃
- Method:
POST
- URL:
/auth/logout
설명
⚠️ 5. 공통 인증 정책
| API | 인증 필요 여부 |
|---|
| 회원가입 | ❌ |
| 로그인 | ❌ |
| 일정 생성 | ✅ |
| 일정 수정 | ✅ |
| 일정 삭제 | ✅ |
| 댓글 생성 | ✅ |
⚠️ 6. 공통 예외 응답 예시
로그인 필요
{
"message": "로그인이 필요합니다."
}
권한 없음
{
"message": "본인 일정만 수정 또는 삭제할 수 있습니다."
}
사용자 없음
{
"message": "해당 유저는 존재하지 않습니다."
}
일정 없음
{
"message": "해당 일정이 존재하지 않습니다."
}
이메일 중복
{
"message": "중복된 이메일 입니다"
}
비밀번호 불일치
{
"message": "비밀번호가 틀렸습니다."
}
👉 Postman Collection: https://documenter.getpostman.com/view/53036105/2sBXqFMND8