Skip to content

API 명세

ohmink edited this page Nov 10, 2020 · 9 revisions

API 명세

로그인

REQUEST

URL
GET /api/user/login/github
Parameter
Name Type Description Required
email STRING 사용자 이메일 O
password STRING 사용자 비밀번호 O
{
  "email": "사용자 이메일",
  "password": "사용자 비밀번호"
}

RESPONSE

Key
Name Type Description
token_type STRING 토큰 타입, bearer로 고정
access_token STRING 사용자 액세스 토큰 값
{
  "token_type": "bearer",
  "access_token": "token"
}

이슈

목록 조회

REQUEST

URL
GET /api/issue

RESPONSE

Key
Name Type Description
issueId INTEGER 이슈 번호
title STRING 이슈 제목
User JSON 이슈 담당자
UserAuthor JSON 이슈 작성자
isOpen BOOLEAN 이슈 상태
createdAt STRING 이슈 생성 시간
IssueLabels JSON 이슈에 달려있는 레이블
MileStone JSON 이슈의 마일스톤
Comment JSON 이슈의 댓글
{
    [
        {
            "title": "이슈 제목",
            "issueId": 0,
            "createdAt": "2020-10-30T17:49:21.000Z",
            "isOpen": 1,
            "UserAuthor": {
                "userId": "작성자 유저 이름",
                "profile_url": "작성자 프로필 사진 url"
            },
            "User": {
                "userId": "담당자 유저 이름",
                "profile_url": "담당자 프로필 사진 url"
            },
            "IssueLabels": [
                {
                    "id": 0,
                    "Label": {
                        "labelName": "라벨이름",
                        "color": "#000000"
                    }
                },
            ],
            "MileStone": {
                "title": "마일스톤테스트1"
            },
            "Comments": [
                {
                    "commentId": 1,
                    "userId": "코멘트 작성자 이름"
                },
            ]
        },
    ]
}

상세 조회

REQUEST

URL
GET /api/issue/detailIssue/:issueId

RESPONSE

{
    "issueId": 1,
    "title": "test",
    "isOpen": 1,
    "createdAt": "2020-11-03T12:39:18.000Z",
    "User": {
        "userId": "sangw3433",
        "profile_url": "https://avatars2.githubusercontent.com/u/66261552?v=4"
    },
    "IssueLabels": [
        {
            "id": 1,
            "Label": {
                "labelName": "frontend",
                "color": "red"
            }
        },
        {
            "id": 2,
            "Label": {
                "labelName": "backend",
                "color": "blue"
            }
        }
    ],
    "MileStone": {
        "title": "week1",
        "Issues": [
            {
                "isOpen": 1
            },
            {
                "isOpen": 1
            }
        ]
    },
    "Comments": [
        {
            "commentId": 1,
            "content": "gooooood",
            "createdAt": "2020-11-03T12:42:51.000Z",
            "User": {
                "userId": "sangw3433",
                "profile_url": "https://avatars2.githubusercontent.com/u/66261552?v=4"
            }
        },
        {
            "commentId": 2,
            "content": "test goooodd",
            "createdAt": "2020-11-03T12:44:06.000Z",
            "User": {
                "userId": "jsangwoo",
                "profile_url": "https://avatars3.githubusercontent.com/u/56758228?v=4"
            }
        }
    ]
}

생성

REQUEST

URL
POST /api/issue
Parameter
Name Type Description Required
title STRING 이슈 제목 O
assignees STRING 이슈 담당자 X
label Array 이슈 레이블 X
milestone STRING 이슈 마일스톤 X
{
    "title": "test2",
    "assignees": "sangw3433",
    "milestoneId": 2,
    "label": ["frontend", "backend"]
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈 제목 수정

REQUEST

URL
UPDATE /api/issue/:issueId
Parameter
Name Type Description Required
title STRING 변경할 제목 O
{
    "title": "변경할 이슈 제목"
}

RESPONSE

SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈 담당자 변경

REQUEST

URL
PATCH /api/issue/assignee/:issueId
Parameter
Name Type Description Required
userId STRING 해당 유저의 아이디 O
{
    "userId": "해당 유저의 아이디"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈 마일스톤 수정

REQUEST

URL
UPDATE /api/:issueId/milestone
Parameter
Name Type Description Required
milestoneId INTEGER 등록할 마일스톤의 아이디 X
{
    "milestoneId": 0
}

RESPONSE

SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈의 레이블 추가

REQUEST

URL
POST /api/issue/issueLabel/:issueId
Parameter
Name Type Description Required
labelName STRING 선택한 레이블의 이름 O
{
    "labelName": "선택한 레이블의 이름"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈의 레이블 삭제

REQUEST

URL
DELETE /api/issue/issueLabel/:issueId
Parameter
Name Type Description Required
labelName STRING 선택한 레이블의 이름 O
{
    "labelName": "선택한 레이블의 이름"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈의 레이블 전체 삭제

REQUEST

URL
DELETE /api/issue/issueLabel/all/:issueId

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

이슈의 상태(열기, 닫기) 변경

REQUEST

URL
PATCH /api/issue/status/:status/:issueId

status = 1 (open)
status = 2 (close)

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

레이블

조회

REQUEST

URL
GET /api/label

RESPONSE

Key
Name Type Description
labelName STRING 레이블 이름
color STRING 레이블 색깔
description STRING 레이블 설명
{
    [
        {
            "labelName": "레이블 이름",
            "color": "레이블 색깔 ex.#ffffff",
            "description": "레이블 설명"
        },
    ]
}

생성

REQUEST

URL
POST /api/label
Parameter
Name Type Description Required
labelName STRING 레이블 이름 O
color STRING 레이블 색깔 O
description STRING 레이블 설명 X
{
  "labelName": "레이블 이름",
  "color": "레이블 색깔 ex.#ffffff",
  "description": "레이블 설명"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

수정

REQUEST

URL
patch /api/label
Parameter
Name Type Description Required
newName STRING 새로운 레이블 이름 O
labelName STRING 기존 레이블 이름 O
color STRING 레이블 색깔 O
description STRING 레이블 설명 X
{
  "newName": "레이블 이름",
  "labelName": "레이블 이름",
  "color": "레이블 색깔 ex.#ffffff",
  "description": "레이블 설명"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

삭제

REQUEST

URL
DELETE /api/label
Parameter
Name Type Description Required
labelName STRING 레이블 이름 O
{
  "labelName": "레이블 이름"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

마일스톤

목록 조회

REQUEST

URL
GET /api/milestone

RESPONSE

Key
Name Type Description
title STRING 마일스톤 제목
dueDate STRING 마일스톤 완료일
{
    [
        {
            "title": "마일스톤 제목",
            "dueDate": "마일스톤 완료일",
        },
    ]
}

상세 목록 조회

REQUEST

URL
GET /api/milestone/detail

RESPONSE

Key
Name Type Description
title STRING 마일스톤 제목
dueDate STRING 마일스톤 완료일
description STRING 마일스톤 설명
openIssues INTEGER 오픈 이슈의 개수
closeIssues INTEGER 클로즈 이슈의 개수
{
    [
        {
            "title": "마일스톤 제목",
            "dueDate": "마일스톤 완료일",
            "description": "레이블 설명",
            "openIssues": 0,
            "closeIssues": 0
        },
    ]
}

생성

REQUEST

URL
POST /api/milestone
Parameter
Name Type Description Required
title STRING 마일스톤 제목 O
dueDate STRING 마일스톤 완료일 X
description STRING 마일스톤 설명 X
{
  "title": "마일스톤 제목",
  "dueDate": "마일스톤 완료일",
  "description": "마일스톤 설명"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

수정

REQUEST

URL
UPDATE /api/milestone/:id
Parameter
Name Type Description Required
milestoneTitle STRING 마일스톤 제목 O
dueDate STRING 마일스톤 완료일 X
description STRING 마일스톤 설명 X
{
  "milestoneTitle": "마일스톤 제목",
  "dueDate": "마일스톤 완료일",
  "description": "마일스톤 설명"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

삭제

REQUEST

URL
DELETE /api/milestone/:id

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

댓글

목록 조회

REQUEST

URL
GET /api/comment/:issueId

RESPONSE

Key
Name Type Description
userId STRING 작성자
content STRING 댓글 내용
time STRING 댓길 시간
{
    [
        {
            "userId": "작성자",
            "content": "댓글 내용",
            "time": "댓글 시간"
        },
    ]
}

생성

REQUEST

URL
POST /api/comment/:issueId
Parameter
Name Type Description Required
content STRING 댓글 내용 O
{
  "content": "댓글 내용"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

수정

REQUEST

URL
UPDATE /api/comment/:id
Parameter
Name Type Description Required
content STRING 댓글 내용 O
{
  "content": "댓글 내용"
}

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }

삭제

REQUEST

URL
DELETE /api/comment/:id

RESPONSE

Key
Name Type Description
status INTEGER 성공 200, 실패 400
SUCCESS { "code" : 200, "message" : "Success" }
FAIL { "code" : 400, "message" : error.message }
Clone this wiki locally