# Status code
---
## Success
- 200 OK
- 201 POST Created
## Error
- 401
- 인증(세션, 쿠키 문제) -> 로그인 화면으로 돌아가야 함
- 403
- 권한 문제 -> 악의적인 API 사용
- 500
- 서버 로직 문제
## Error message response
```
{
message : string
}
```
---
# API Document
---
# Issue
## 이슈들 가져오기 (검색)
| Method | uri | session |
|:------:|:-----------:|:-------:|
| GET | /api/issues | X |
- Query
| query | data | comment |
|:---------:|:------------------:|:----------------------------------:|
| open | true, false | 열린 이슈, 닫힌 이슈 |
| author | @me, user_nickname | 내가 쓴 글, 특정 유저가 쓴 글 검색 |
| assignee | @me, user_nickname | 담당자 (할당된 이슈)검색 |
| milestone | milestone_title | 마일스톤 검색 |
| comment | true, false | 내가 댓글을 단 이슈 |
| label | label_name | 레이블 검색 **여러개 작성 가능** |
Example
```
/api/issues?open=true&label=bug&label=document
-> 이렇게 하면 label이 배열형태로 전달됨.
```
- Req
```
```
- Res
```
{
issues: []
}
```
## 이슈 생성
| Method | uri | session |
|:------:|:-----------:|:-------:|
| POST | /api/issues | O |
- Req
```
{
title: string,
assignee_no: [number],
milestone_no: number,
label_no: [number]
}
```
- Res
```
{
}
```
## 이슈 제목 수정
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| PATCH | /api/issues/title/:no | O |
- Req
```
{
title: string
}
```
- Res
```
{
}
```
## 이슈 assignee 추가
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| POST | /api/issues/assignee/:no | O |
- Req
```
{
assignee_no: number
}
```
- Res
```
{
}
```
## 이슈 assignee 삭제
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| DELETE | /api/issues/assignee/:no | O |
- Req
```
{
assignee_no: number
}
```
- Res
```
{
}
```
## 이슈 제목 수정
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| PATCH | /api/issues/title/:no | O |
- Req
```
{
title: string
}
```
- Res
```
{
}
```
## 이슈 label 추가
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| POST | /api/issues/label/:no | O |
- Req
```
{
label_no: number
}
```
- Res
```
{
}
```
## 이슈 label 삭제
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| DELETE | /api/issues/label/:no | O |
- Req
```
{
label_no: number
}
```
- Res
```
{
}
```
## 이슈 milestone 변경
| Method | uri | session |
|:------:|:-------------------------:|:-------:|
| PATCH | /api/issues/milestone/:no | O |
- Req
```
{
milestone_no: number | null
}
```
- Res
```
{
}
```
## 이슈 open
| Method | uri | session |
|:------:|:--------------------:|:-------:|
| PATCH | /api/issues/open/:no | O |
- Req
```
{
}
```
- Res
```
{
}
```
## 이슈 close
| Method | uri | session |
|:------:|:---------------------:|:-------:|
| PATCH | /api/issues/close/:no | O |
- Req
```
{
}
```
- Res
```
{
}
```
## 이슈 comment 추가
| Method | uri | session |
|:------:|:-------------------:|:-------:|
| POST | /api/issues/comment | O |
- Req
```
{
issue_no: number,
content: string,
is_head: boolean
}
```
- Res
```
{
}
```
## 이슈 comment 변경
| Method | uri | session |
|:------:|:-----------------------:|:-------:|
| PATCH | /api/issues/comment/:no | O |
- Req
```
{
content: string,
}
```
- Res
```
{
}
```
## 이슈 comment 삭제
| Method | uri | session |
|:------:|:-----------------------:|:-------:|
| DELETE | /api/issues/comment/:no | O |
- Req
```
```
- Res
```
{
}
```
# Label
## 레이블 조회
| Method | uri | session |
|:------:|:-----------:|:-------:|
| GET | /api/labels | O |
- Req
```
```
- Res
```
{
}
```
## 레이블 추가
| Method | uri | session |
|:------:|:-----------:|:-------:|
| POST | /api/labels | O |
- Req
```
{
name: string,
description: string,
color: string
}
```
- Res
```
{
}
```
## 레이블 변경
| Method | uri | session |
|:------:|:---------------:|:-------:|
| PUT | /api/labels/:no | O |
- Req
```
{
name: string,
description: string,
color: string
}
```
- Res
```
{
}
```
## 레이블 삭제
| Method | uri | session |
|:------:|:---------------:|:-------:|
| DELETE | /api/labels/:no | O |
- Req
```
```
- Res
```
{
}
```
# Milestone
## 마일스톤 조회
| Method | uri | session |
|:------:|:---------------:|:-------:|
| GET | /api/milestones | O |
- Req
```
```
- Res
```
{
}
```
## 마일스톤 추가
| Method | uri | session |
|:------:|:---------------:|:-------:|
| POST | /api/milestones | O |
- Req
```
{
title: string,
description: string | null,
due_date: string | null
}
```
- Res
```
{
}
```
## 마일스톤 변경
| Method | uri | session |
|:------:|:-------------------:|:-------:|
| PUT | /api/milestones/:no | O |
- Req
```
{
title: string,
description: string | null,
due_date: string | null
}
```
- Res
```
{
}
```
## 마일스톤 삭제
| Method | uri | session |
|:------:|:-------------------:|:-------:|
| DELETE | /api/milestones/:no | O |
- Req
```
```
- Res
```
{
}
```
## 마일스톤 열기
| Method | uri | session |
|:------:|:------------------------:|:-------:|
| PATCH | /api/milestones/open/:no | O |
- Req
```
```
- Res
```
{
}
```
## 마일스톤 닫기
| Method | uri | session |
|:------:|:-------------------------:|:-------:|
| PATCH | /api/milestones/close/:no | O |
- Req
```
```
- Res
```
{
}
```