[KR] 시작하기 - 2022-dimipay-recruit/Flutter-Server GitHub Wiki

환영합니다!

2022 디미페이 채용 퍼포먼스 테스트 플러터조 서버 Repository입니다.

이 위키는 플러터조 서버 API에 접근하기 위한 방법을 설명하고 있습니다.

서버는 JWT기반 토큰을 중심으로 인증하여 작동하기에 서버 인증 플로우에 관한 서술을 추가할 예정입니다.

자세한 API명세는 오른쪽의 메뉴를 참고하여 확인해주세요.

API 요청 방법

API 서버는, develop 브랜치를 기준으로 커밋될 때마다 서버에 자동으로 적용됩니다. 서버는 다음과 같은 도메인을 통해 접근할 수 있습니다.

https://dprc.tilto.kr/

이하의 모든 명세에서는, 절대 경로를 도메인 생략 후 서술합니다.

예로, https://dprc.tilto.kr/v1/user/login의 명세라면 /v1/user/login과 같이 표시합니다.

또한, 실사용하는 라우터에 한해서는 JSEND 표준을 준수하며, 응답 타입은 대체로 다음과 같습니다.

성공시:

{
    status: 'success',
    data: null | object | object[]
}

실패시 (요청 에러):

{
    status: 'fail',
    data: {
        message: string
    }
}

API 요청 테스트

이 서버에서는, 서버의 연결을 확인하기 위한 GET과 POST메소드에 매칭되는 ReturnRouter를 갖고 있습니다. 아래의 형식에 맞춰, 요청을 보내보세요!


GET /return

GET https://dprc.tilto.kr/return?testquery=test

query :

자유 (타입도 자유!) - 아무값이나 보내세요. 다 받아줍니다.

response :

알 수 없음 (타입도?) - 요청이 제대로 들어왔다면, 보낸 값을 그대로 돌려줍니다.

POST /return

POST https://dprc.tilto.kr/return
body: {
 testquery: test
}

body :

자유 (타입도 자유!) - 아무값이나 보내세요. 다 받아줍니다.

response :

알 수 없음 (타입도?) - 요청이 제대로 들어왔다면, 보낸 값을 그대로 돌려줍니다.

인증


POST /auth/login

request:

  • body (googleUid나 kakaoUid 둘중 하나는 있어야 함)
    • googleUid?: string (/^[a-zA-Z0-9]+$/)
    • kakaoUid?: string (/^kakao:[0-9]+$/)

response :

{
    status: 'success',
    data: {
        type: 'Bearer',
        refreshToken: string (JWT),
        accessToken: string (JWT, 7일 후 만기),
        userId: string (UUID)
    }
}

error:

  • 400
    • Lack of user information
    • Invalid user information

POST /auth/token

request:

  • body
    • refreshToken: string (Bearer + JWT)

response:

{
    status: 'success',
    data: {
        type: 'Bearer',
        accessToken: string (JWT, 7일 후 만기),
        userId: string (UUID)
    }
}

error:

  • 400
    • Invalid authorization token
    • Invalid authorization header type
  • 401
    • Invalid authorization token

POST /auth/logout

request:

  • header
    • authorization: string (Bearer + JWT)

response:

{
    status: 'success',
    data: null
}

error:

  • 400
    • Invalid authorization token
    • Invalid authorization header type