-
Notifications
You must be signed in to change notification settings - Fork 5
API 명세서 1. Issue
Sooyeon Park edited this page Nov 3, 2020
·
23 revisions
{
0: close,
1: opened
}
이슈 목록 상단에 필요한 open/closed 개수 + 모달 창에 필요한 데이터
GET /api/all- Response (success)
{
"message": "The request is successfully processed",
"data": {
openCount: Number,
closedCount: Number,
users: [
{
"id": Number,
"username": String,
"avatar": String
}
],
labels: [
{
"id": Number,
"title": String,
"description": String,
"color": String
}
],
milestones: [
{
"id": Number,
"title": String
}
]
}
}
GET /api/issue- Filter (query string 정보 / optional)
{
"state": "all" | "open" | "close" (default open),
"author": userId,
"label": labelId,
"milestone": milestoneId,
"assignee": userId,
"search": 검색 할 단어
}
- Response (success)
{
"message": "The request is successfully processed",
"data": [
{
"id": Number,
"title": String,
"state": Number,
"user": {
"id": Number,
"username": String,
},
"milestone": {
"id": Number,
"title": String,
},
"label": [
{
"id": Number,
"title": String,
"color": String,
},
]
"commentCount": Number,
"createdAt": Date,
"assignee": [
{
"id": Number,
"avatar": String,
"username": String,
},
]
},
]
}
GET /api/issue/{issueId}- Response (success)
{
"message": "The request is successfully processed",
"data": {
"id": Number,
"title": String,
"state": Number,
"user": {
"id": Number,
"username": String,
},
"milestone": {
"id": Number,
"title": String,
},
"label": [
{
"id": Number,
"title": String,
"color": String,
},
]
"commentCount": Number,
"createdAt": Date,
"assignee": [
{
"id": Number,
"avatar": String,
"username": String,
},
]
}
}
POST /api/issue- Request
{
"title": String (required),
"content": String,
"labels": [labelId, ...],
"assignees": [userId, ...],
"milestone": milestoneId
}
- Response Status code
| code | 설명 |
|---|---|
| 200 | 정상적으로 생성 |
| 400 | request body가 정상적이지 않은 경우 |
| 401 | 헤더에 토큰을 실지 않는 경우 (로그인 X) |
| 500 | 내부 서버 에러 |
- Response
{
"message": "The request is successfully processed"
}
PUT /api/issue/{issueId}- Request
{
"title": String (required)
}
- Response Status code
| code | 설명 |
|---|---|
| 200 | 정상적으로 생성 |
| 400 | request body가 정상적이지 않은 경우 |
| 401 | 헤더에 토큰을 실지 않는 경우 (로그인 X) |
| 403 | 갱신하고자 하는 사용자가 이슈의 작성자가 아닌 경우 |
| 500 | 내부 서버 에러 |
- Response
{
"message": "The request is successfully processed"
}
POST /api/issue/{issueId}/details- Request
갱신하고자 하는 데이터 1개만 body에 작성
{
"type": "assignee" || "label" || "milestone",
"method": 0 || 1 (0은 제거, 1은 추가),
"data": userId || labelId || milestoneId
}
- Response Status code
| code | 설명 |
|---|---|
| 200 | 정상적으로 생성 |
| 400 | request body가 정상적이지 않은 경우 (3개 중 1개 필수) |
| 401 | 헤더에 토큰을 실지 않는 경우 (로그인 X) |
| 409 or 422 | 해당 이슈에 이미 연결되어 있는 디테일을 추가할 경우 혹은 연결되어 있지 않은 디테일을 삭제할 경우 |
| 500 | 내부 서버 에러 |
- Response
{
"message": "The request is successfully processed"
}
DELETE /api/issue/{issueId}- Response Status code
| code | 설명 |
|---|---|
| 200 | 정상적으로 생성 |
| 401 | 헤더에 토큰을 실지 않는 경우 (로그인 X) |
| 404 | 존재하지 않는 이슈를 삭제하고자 할 경우 |
| 500 | 내부 서버 에러 |
- Response
{
"message": "The request is successfully processed"
}
PUT /api/issue/state- Request
{
"state": 0 || 1 (변경하고자 하는 값 close하고 싶을 때 0, open하고 싶을 때 1) (required),
"issueIds": [...] (required)
}
- Response Status code
| code | 설명 |
|---|---|
| 200 | 정상적으로 삭제 |
| 400 | state나 issueIds가 없거나 state가 0 또는 1이 아닌 값일 때 |
| 401 | 헤더에 토큰을 실지 않는 경우 (로그인 X) |
| 500 | 내부 서버 에러 |
- Response
{
"message": "The request is successfully processed"
}