Skip to content

API 스펙 설계

BangKiHyun edited this page Dec 11, 2020 · 5 revisions

[API 스펙]

참여자

참여자 등록 - /v1/signup , String email, String githubId, String userRole - POST

  • 챌린저
    • 미션에 참여하는 사람 등록
  • 리뷰어
    • 미션 리뷰해주는 사람 등록
class User {
  Long id; //DB
  String email;  
  String githubId; //github
  USER_ROLE role;
}

enum USER_ROLE {
  CHALLANGER, REVIEWER;
}

로그인 - /v1/signin, email, - POST

세션에 (고유id, githubId), USER_ROLE;

URL METHOD 비고 설명
/v1/signup POST String email
String githubId
String userRole (Challenger, Reviewer)
회원가입
/v1/signin POST String email 로그인

미션

  • 미션 등록 /v1/mission - 어드민 - POST

    • 미션 레포 만들어져있어야한다.
  • 미션 목록 보기 /v1/mission - GET

  • 미션 자세히 보기 /v1/mission/{missionId} - GET

URL METHOD 비고 설명
/v1/mission POST 미션 등록, 미션 레포 알아야됨 미션 등록 (어드민)
/v1/mission GET 미션 목록 보기
/v1/mission/{missionId} GET 보려는 미션 Id 미션 자세히 보기

진행 미션 : 챌린저, 리뷰어,

  • 미션 시작 /v1/mission/begining - POST

    • 브랜치 생성 - 챌린저 git id 브랜치생성

    • 진행 미션 생성

    • 리뷰어 배정

      • 외부에서 만들어서 넣어줌
  • 리뷰 요청 - /v1/progressmission/{missionId} - POST

    • github 미션 레포에서 pr 찾아서 리뷰 생성 - 어떤 레포, githubId
    • 이력 관리 & 리뷰어에게 알림
    • slack 연동
  • Git 연동

URL METHOD 비고 설명
/v1/mission/begining POST missionId, challenger id 미션 시작하기
/v1/progressmission/{missionId} POST 진행중인 미션 Id 리뷰 요청

리뷰 - PR

  • 리뷰(PR) 목록 보기 - 토큰 기반으로 , 분리하는게 좋을 것 같다.
  • 챌린저 : 리뷰를 요청할 수 있는 목록 /v1/reviews/challenger - GET
  • 리뷰어 : 현재 리뷰를 하고 있는 목록 /v1/reviews/reviewer - GET
  • 리뷰 완료 - /v1/reviews/{reivewId}/complete/ - PUT
    • slack 연동
  • [2020/12/02 수정]
URL METHOD 비고 설명
/v1/reviews/challenger GET (세션, 토큰)? 챌린저가 현재 리뷰 요청한 목록 보기
/v1/reviews/reviewer GET (세션, 토큰)? 리뷰어가 자신에게 배정되어있는 리뷰 목록 보기
/v1/reivews/{reviewId}/complete PUT 해당 리뷰 아이디 리뷰어가 리뷰 완료했다고 알리기

Clone this wiki locally