스케줄 관리 API 명세서
Base URL
http://localhost:8080/
1. 모든 일정 조회
Endpoint
GET /api/schedules
설명
모든 일정을 조회합니다.
Request
- Method:
GET
- Headers:
Content-Type
:application/json
Response
- Status:
200 OK
- Content-Type:
application/json
Response Body Example
[
{
"id": 1,
"date": "2024-10-01",
"title": "회의"
},
{
"id": 2,
"date": "2024-10-02",
"title": "프로젝트 마감"
}
]
2. 특정 날짜의 일정 조회
Endpoint
GET /api/schedules/{date}
설명
특정 날짜의 일정을 조회합니다. {date}
는 조회할 날짜를 의미합니다.
Request
- Method:
GET
- URL Params:
{date}
:YYYY-MM-DD
형식의 날짜 (필수)
- Headers:
Content-Type
:application/json
Response
- Status:
200 OK
- Content-Type:
application/json
Response Body Example
[
{
"id": 1,
"date": "2024-10-01",
"title": "회의"
}
]
에러 응답
Status:
404 Not Found
Content-Type:
application/json
Response Body:
{ "error": "Schedule not found for date: 2024-10-01" }
3. 일정 추가
Endpoint
POST /api/schedules
설명
새로운 일정을 추가합니다.
Request
- Method:
POST
- Headers:
Content-Type
:application/json
- Request Body Example
{
"date": "2024-10-01",
"title": "회의"
}
Response
- Status:
201 Created
- Content-Type:
application/json
Response Body Example
{
"id": 1,
"date": "2024-10-01",
"title": "회의"
}
4. 일정 수정
Endpoint
PUT /api/schedules/{id}
설명
기존 일정을 수정합니다. {id}
는 수정할 일정의 ID입니다.
Request
- Method:
PUT
- URL Params:
{id}
: 수정할 일정의 ID (필수)
- Headers:
Content-Type
:application/json
- Request Body Example
{
"date": "2024-10-01",
"title": "수정된 회의"
}
Response
- Status:
200 OK
- Content-Type:
application/json
Response Body Example
{
"id": 1,
"date": "2024-10-01",
"title": "수정된 회의"
}
에러 응답
- Status:
404 Not Found
- Content-Type:
application/json
Response Body Example
{
"error": "Schedule not found with id: 1"
}
5. 일정 삭제
Endpoint
DELETE /api/schedules/{id}
설명
특정 ID를 가진 일정을 삭제합니다.
Request
- Method:
DELETE
- URL Params:
{id}
: 삭제할 일정의 ID (필수)
- Headers:
Content-Type
:application/json
Response
- Status:
204 No Content
에러 응답
- Status:
404 Not Found
- Content-Type:
application/json
Response Body Example
{
"error": "Schedule not found with id: 1"
}
에러 응답 예시
공통 에러 응답
- Status:
400 Bad Request
- Response Body Example:
{ "error": "Invalid input" }
- Status:
500 Internal Server Error
- Response Body Example:
{ "error": "An unexpected error occurred" }
기타
- Authentication: 이 API는 인증이 필요하지 않으며, 모든 클라이언트가 접근할 수 있습니다.
- 데이터 형식: 모든 요청 및 응답 데이터는 JSON 형식으로 주고받습니다.
이 API 명세서는 스케줄 관리 시스템에서 일정 CRUD(Create, Read, Update, Delete) 기능을 제공하는 API를 문서화한 것입니다. 이를 통해 클라이언트가 일정 관리와 관련된 작업을 수행할 수 있습니다.
sparta-calendar/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── sparta/
│ │ │ └── spartacalendar/
│ │ │ ├── controller/ # 컨트롤러 (API 요청을 처리)
│ │ │ │ ├── ScheduleController.java
│ │ │ │ ├── AuthController.java # 로그인 및 회원가입 처리
│ │ │ ├── dto/ # DTO (데이터 전송 객체)
│ │ │ │ ├── ScheduleDTO.java
│ │ │ │ └── UserDTO.java # 사용자 정보
│ │ │ ├── entity/ # 엔티티 (DB 테이블과 매핑)
│ │ │ │ ├── Schedule.java
│ │ │ │ └── User.java # 사용자 엔티티
│ │ │ ├── repository/ # 데이터베이스 접근 레이어 (JDBC)
│ │ │ │ ├── ScheduleRepository.java
│ │ │ │ └── UserRepository.java # 사용자 정보 처리
│ │ │ ├── service/ # 서비스 (비즈니스 로직)
│ │ │ │ ├── ScheduleService.java
│ │ │ │ └── AuthService.java # 로그인 및 회원가입 처리 로직
│ │ │ └── SpartacalendarApplication.java # 메인 애플리케이션 클래스
│ │ ├── resources/ # 리소스 파일 (설정, HTML, SQL)
│ │ │ ├── static/ # 정적 파일 (CSS, JS)
│ │ │ │ ├── calendar.html
│ │ │ │ ├── login.js
│ │ │ │ ├── signup.js
│ │ │ │ └── style.css
│ │ │ ├── templates/ # HTML 템플릿 파일
│ │ │ │ ├── index.html # 로그인 페이지
│ │ │ │ └── signup.html # 회원가입 페이지
│ │ │ ├── application.properties # 애플리케이션 설정 파일
└── build.gradle # 빌드 스크립트
'TIL > 스파르타 자바공부기간' 카테고리의 다른 글
[내일배움캠프] 두번째 과제, ERD 다이어그램: BaseballGameCLI (0) | 2024.09.23 |
---|---|
[내일배움캠프] 두번째 과제, ERD 다이어그램: BaseballGameGUI (0) | 2024.09.21 |
[내일배움캠프] 두번째 과제, 트러블슈팅: BaseballGameGUI (0) | 2024.09.13 |
[내일배움캠프] 첫번째 과제, 트러블슈팅: Calculator GUI (0) | 2024.09.07 |
[내일배움캠프] 첫번째 과제, 트러블슈팅: Calculator Console (0) | 2024.09.06 |