DSHS.APP 가이드 Help

API 레퍼런스

스코프 목록을 보거나 API를 시도해 보려면 사이트의 API 문서 를 참조하세요

급식 정보

GET method/api/v1/meals/{date}

해당 날짜의 급식 정보를 반환합니다. 출처는 NEIS API이며, 알레르기 표시, 조식 표시를 제거한 뒤 제공됩니다.

Request parameters

Responses

[ "example" ]

외출 신청 기록

GET method/api/v1/outrequests/{id}

해당 id의 외출 신청 기록을 제공하거나 새로운 외출 신청의 템플릿을 제공합니다.

Request parameters

Responses

{ "requestId": "example", "requester": { "name": "example", "student_id": "example", "sex": "m" }, "users": [ { "name": "example", "student_id": "example", "sex": "m" } ], "date_request": "1971-04-26T12:26:06Z", "date_from": "1971-04-26T12:26:06Z", "date_to": "1971-04-26T12:26:06Z", "category": "example", "reason": "example", "status": 58, "share": 58, "actions": [ "modify" ] }

외출 신청 수정/만들기

POST method/api/v1/outrequests/{id}

외출 신청을 수정하거나 새로 만듭니다. 새로 만드려면 id를 new로 설정하세요.

Request parameters

{ "category": "특별실 신청", "reason": "example", "date_from": "1971-04-26T12:26:06Z", "date_to": "1971-04-26T12:26:06Z", "share": 58, "force": "false" }

Responses

{ "requestId": "example" }
{ "error": "invalid_id", "force_available": true }

외출 신청 삭제

DELETE method/api/v1/outrequests/{id}

해당 id의 외출 신청을 삭제합니다. delete 권한을 가지고 있어야 합니다.

Request parameters

Responses

외출 신청에 참여하기

PUT method/api/v1/outrequests/{id}/users

외출 신청에 참여합니다. participate 권한을 가지고 있어야 합니다.

Request parameters

Responses

외출 신청에서 나가기

DELETE method/api/v1/outrequests/{id}/users

외출 신청에서 나갑니다. 강제 퇴출은 구현되어 있지 않습니다. escape(나가기) 또는 force_escape(강제 퇴출) 권한을 가지고 있어야 합니다.

Request parameters

Responses

소유권 넘기기(미구현)

PATCH method/api/v1/outrequests/{id}/users

미구현

Responses

외출 신청 기록들

GET method/api/v1/outrequests/

외출 신청 기록을 제공합니다.

Request parameters

Responses

[ { "requestId": "example", "requesterName": "example", "requesterCount": 58, "date_from": "1971-04-26T12:26:06Z", "date_to": "1971-04-26T12:26:06Z", "category": "example", "reason": "example", "status": 58, "locked": true, "invited": true } ]
{ "error": "invalid type" }

전체 벌점과 기록

GET method/api/v1/penalties

전체 벌점과 벌점 정보를 제공합니다.

Request parameters

Responses

{ "total": 87, "positive": 87, "negative": 87, "data": [ { "target": { "name": "example" }, "giver": { "name": "example" }, "date": "1971-04-26T12:26:06Z", "reason": "example", "points": 58 } ] }

벌점 점수 정보

GET method/api/v1/penalties/points

벌점 점수 정보를 제공합니다.

Responses

{ "total": 87, "positive": 87, "negative": 87 }

사용자 정보를 json으로 리턴

GET method/api/v1/userinfo

Access Token에 해당되는 사용자의 정보를 리턴합니다. userinfo_readphone 스코프가 있으면 학생/부모님 휴대전화 정보도 포함됩니다.

Responses

{ "name": "example", "email": "example", "student_id": "example", "grade": 58, "class": 58, "class_num": 58, "joined_year": 58, "penalty_points": 87, "unread_notifications": 58, "sex": "m", "phone_number": "example", "parent_phone_number": "example" }

모든 알림 읽기

GET method/api/v1/notifications

알림 목록을 읽습니다(모든 알림이 읽음 처리됩니다).

Responses

모든 알림 삭제

DELETE method/api/v1/notifications

모든 알림을 삭제합니다.

Responses

알림 읽기

GET method/api/v1/notifications/{id}

알림을 읽습니다(해당 알림이 읽음 처리됩니다).

Request parameters

Responses

{ "_id": "example", "date": "1971-04-26T12:26:06Z", "href": "/penalty", "content": "example", "read": true }

알림 삭제

DELETE method/api/v1/notifications/{id}

알림을 삭제합니다.

Request parameters

Responses

자습 신청 정보

GET method/api/v1/reservations/{date}

자습 신청 정보를 읽습니다. 실시간 현황은 api로 제공되지 않습니다.

Request parameters

Responses

{ "available": true, "time": { "from": "1971-04-26T12:26:06Z", "to": "1971-04-26T12:26:06Z" }, "data": { "data": {}, "areaCountData": [ { "area_name": "example", "occupied": 58 } ], "version": 58 }, "user_info": { "seat": "example", "student_id": "example", "change_streak": 58, "lock": true }, "limit": 58 }

자습 신청하기

POST method/api/v1/reservations/{date}

자습 장소를 신청합니다.

Request parameters

{ "seat": "a101" }

Responses

{ "changed": true, "change_streak": 58, "limit": 58 }
{ "error": "not_available_date" }
{ "limit": 58 }

구역(a2, s1 등)의 신청 현황 제공

GET method/api/v1/reservations/{date}/areas/{area}

해당 구역의 신청 현황(신청된 좌석들)을 제공합니다. 구역의 전체 좌석 및 배치는 /api/v1/spaces/areas 에서 확인할 수 있습니다.

Request parameters

Responses

{ "room_name": "example", "area_name": "example", "occupied": 58, "seats": [ { "seat_name": "example", "area_name": "example", "room_name": "example", "user": { "name": "example", "alias": "example", "student_id": "example" } } ], "version": 58 }

각 장소의 신청 현황 제공

GET method/api/v1/reservations/{date}/rooms/{room}

각 장소의 모든 구역과, 그 구역에 신청한 사람 수를 제공합니다.

Request parameters

Responses

{ "areas": [ { "area_name": "example", "occupied": 58 } ] }

사용자 검색

GET method/api/v1/reservations/{date}/search

현재 자습 장소를 신청한 학생의 신청 정보를 제공합니다.

Request parameters

Responses

{ "seat": "example" }

모든 자습실 정보

GET method/api/v1/spaces/rooms

모든 자습실 정보를 제공합니다. 데이터는 정적입니다.

Responses

[ { "room_name": "example", "description": "example", "areas": [ "example" ] } ]

자습실 정보

GET method/api/v1/spaces/rooms/{room}

자습실의 정보를 제공합니다. 데이터는 정적입니다.

Request parameters

Responses

{ "description": "example", "areas": [ { "area_name": "example", "count": 58 } ] }

구역 정보

GET method/api/v1/spaces/areas/{area}

구역 정보를 제공합니다. 데이터는 정적입니다.

Request parameters

Responses

{ "count": 58, "tables": [ { "r": 58, "c": 58, "data": [ "example" ] } ], "vertical": true }
Last modified: 20 January 2025