-
Notifications
You must be signed in to change notification settings - Fork 2
시간표 API
홍유석(YU SEOK HONG) edited this page Jun 27, 2022
·
29 revisions
- request url
POST /api/v1/timetables
- request body
{
"name": "시간표1",
"semester": "SECOND",
"year": 2022,
}
semester
: 학기(FIRST, SECOND, SUMMER, WINTER)
SUCCESS 201
{
"message": "시간표 생성 완료"
}
- request url
GET /api/v1/timetables?year={year}&semester={semester}
year
: 연도
semester
: 학기(FIRST, SECOND, SUMMER, WINNER)
SUCCESS 200
{
"message": "시간표 목록 조회 완료",
"data": {
"timetables": [
{
"timetableId": "11",
"name": "시간표1"
},
...
]
}
}
- request url
GET /api/v1/timetables/{timeTableId}
{
"message": "시간표 조회 완료",
"data": {
"timeTableId": "11",
"name": "시간표1",
"year": 2022,
"semester": "SECOND",
"lectures": [
{
"lectureId":"22",
"name":"객체지향프로그래밍2",
"professor": "조세형",
"classRoom": "Y5411",
"lectureDetails": [
{
"day": "MON"
"startTime": "09:00",
"endTime": "10:50"
},
{
"day": "WED"
"startTime": "09:00",
"endTime": "09:50"
}
]
},
{
"lectureId":"22",
"name":"프로젝트 회의",
"lectureDetails": [
{
"day": "TUE"
"startTime": "15:00",
"endTime": "16:50"
},
{
"day": "THU"
"startTime": "15:00",
"endTime": "15:50"
}
]
},
...
]
}
}
day
: MON, TUE, WED, THU, FRI, SAT, SUN
- request url
DELETE /api/v1/timetables/{timeTableId}
- 성공
SUCCESS 200
{
"message": "시간표 삭제 완료"
}
- 실패
- 삭제를 요청한 시간표가 존재하지 않은 경우
{
"errorCode": "",
"message":""
}
- request url
GET /api/v1/lectures/officials?page={page}&size={size}year={year}&semester={semester}&sort={sort}&grade={grade1}&lecture-type={type1}&credit={credit1}&time={time1}&search={search}
year
- 필수값
- 연도
semester
- 필수값
- 학기
sort
- 정렬 기준
- NAME, CODE
grade
- FRESHMAN, SOPHOMORE, JUNIOR, SENIOR, ETC
- 배열로 전달(택1)
grade=FRESHMAN, SOPHOMORE
grade=FRESHMAN&grade=SOPHOMORE
lecture-type
- MAJOR, ELECTIVE
- 배열로 전달(택1)
lecture-type=MAJOR, ELECTIVE
grade=MAJOR&grade=ELECTIVE
credit
- 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4
- 배열로 전달(택1)
credit=0.5, 1
credit=0.5&credit=1
time
-
요일 시작시간-끝시간
- ex)
MON 12-13
- ex)
- 배열로 전달(택1)
time=MON 12-13, TUE 12-13
time=MON 12-13&time=TUE 12-13
search
-
검색타입-검색어
- ex
name-객체지향프로그래밍2
- 검색타입
-
name
: 과목명 -
professor
: 교수명 -
code
: 과목코드 -
classroom
: 장소
-
- ex
SUCCESS 200
{
"message": "강의 목록 조회 완료",
"data": {
"content": [
{
"lectureId": "45",
"name": "고급 객체지향 프로그래밍",
"professor": "장희정",
"classroom": "Y5437",
"grade": "SOPHOMORE",
"credit": 3.0,
"code": "0201",
"lectureType": "MAJOR",
"lectureDetails": [
{
"day": "MON",
"startTime": "10:00",
"endTime": "10:50"
},
{
"day": "WED",
"startTime": "10:00",
"endTime": "11:50"
}
]
},
...
],
"pageable": {
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"offset": 0,
"pageNumber": 0,
"pageSize": 5,
"paged": true,
"unpaged": false
},
"totalPages": 20,
"totalElements": 100,
"last": false,
"size": 5,
"number": 0,
"sort": {
"empty": true,
"sorted": false,
"unsorted": true
},
"numberOfElements": 5,
"first": false,
"empty": false
}
}
- request url
POST /api/v1/timetables/{timeTableId}/enrollments
- request body
{
"lectureId": "22"
}
- 성공
{
"message": "official 강의 시간표에 추가 완료"
}
- 실패
- 잘 못된 강의 아이디인 경우
- 시간이 중첩되어 추가할 수 없는 경우
{
"errorCode": "",
"message": ""
}
- request url
POST /api/v1/timetables/{timeTableId}/enrollments/custom-lectures
- request body
{
"name": "팀플 회의",
"professor": "조세형"
"classRoom": "Y5411",
"lectureDetails": [
{
"day": "MON",
"startTime": "11:00",
"endTime": "11:50"
},
{
"day": "WED",
"startTime": "11:00",
"endTime": "11:50"
}
]
}
- 성공
{
"message": "custom 강의 시간표에 추가 완료"
}
- 실패
- 다른 강의와 시간이 겹치는 경우
{
"errorCode": "",
"message": ""
}
- request url
PUT /api/v1/timetables/{timeTableId}/custom-lectures/{lectureId}
- request body
{
"name": "팀플 회의",
"professor": "조세형",
"classRoom": "Y5411",
"lectureDetails": [
{
"lectureDetailId": "44",
"day": "MON",
"startTime": "11:00",
"endTime": "11:50"
},
{
"lectureDetailId": "45",
"day": "WED",
"startTime": "11:00",
"endTime": "11:50"
}
]
}
- 성공
SUCCESS 200
{
"message": "시간표에 추가된 custom 강의 수정 완료"
}
- 실패
- 시간이 겹치는 경우
{
"errorCode": "",
"message": ""
}
- request url
DELETE /api/v1/timetables/{timeTableId}/enrollments/{lectureId}
{
"message": "시간표에서 강의 삭제 완료"
}
일반 사용자가 사용할 수 없는 API
- request url
POST /api/v1/lectures/officials
- request body
{
"lectures": [
{
"name": "객체지향프로그래밍2",
"professor": "조세형"
"classRoom": "Y5411",
"semester": "SECOND",
"openYear": 2022,
"grade": "FRESHMAN",
"credit": 3.0,
"code": "0917",
"lectureType": "MAJOR",
"lectureDetails": [
{
"day": "MON"
"startTime": "09:00",
"endTime": "10:50"
},
{
"day": "WED"
"startTime": "09:00",
"endTime": "09:50"
}
]
},
...
]
}
semester
: 학기(FIRST, SECOND, SUMMER, WINTER)
grade
: 학년(FRESHMAN, SOPHOMORE, JUNIOR, SENIOR)
lectureType
: 강의 종류(MAJOR, ELECTIVE)
SUCCESS 201
{
"message": "official 강의 추가 완료"
}
- request url
PUT /api/v1/lectures/officials/{lectureId}
- request body
{
"name": "객체지향프로그래밍2",
"professor": "조세형"
"classRoom": "Y5411",
"semester": "SECOND",
"openYear": 2022,
"grade": "FRESHMAN",
"credit": 3.0,
"code": "0917",
"lectureType": "MAJOR",
"lectureDetails": [
{
"lectureDetailId": "33",
"day": "MON",
"startTime": "09:00",
"endTime": "10:50"
},
{
"lectureDetailId": "34",
"day": "WED",
"startTime": "09:00",
"endTime": "09:50"
}
]
}
{
"message": "official 강의 수정 완료"
}
- request url
DELETE /api/v1/lectures/officials/{lectureId}
{
"message": "official 강의 삭제 완료"
}