Schedule Develop API 명세서

김소연·2026년 4월 23일

공통 정보

  • 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

이름타입설명예시
pagenumber페이지 번호0
sizenumber페이지 크기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

설명

  • 로그인한 사용자만 자신의 일정을 삭제할 수 있습니다.
  • 삭제 전에 해당 일정의 댓글을 먼저 삭제한 후 일정을 삭제합니다.
  • 이를 통해 외래키 제약 오류를 방지합니다.

💬 Comment API

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. 회원가입

  • Method: POST
  • URL: /users

Request Body

{
  "userName": "홍길동",
  "email": "test1234@naver.com",
  "password": "password"
}

설명

  • 새로운 사용자를 생성합니다.
  • 이메일 중복 검사 후 저장합니다.
  • 비밀번호는 암호화되어 저장됩니다.

3-2. 사용자 단건 조회

  • Method: GET
  • URL: /users/{userId}

Example

GET /users/1

설명

  • 특정 사용자 정보를 조회합니다.

3-3. 사용자 전체 조회

  • Method: GET
  • URL: /users

설명

  • 전체 사용자 목록을 조회합니다.

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

0개의 댓글