Endpoint
POST /{api_version}/auth/register
POST Parameters
[
'type' => ['required', 'in:email,facebook,instagram'],
'email' => ['required', 'max:255', 'email', 'unique:users,email'],
'username' => ['required', 'max:255', 'regex:/^[ㄱ-ㅎ가-힣A-Za-z0-9]+[ㄱ-ㅎ가-힣A-Za-z0-9-_\.]*[ㄱ-ㅎ가-힣A-Za-z0-9]+$/', 'unique:users,username'],
'gender' => ['required', 'in:0,1'],
'user_agreement' => 'required',
/*TODO: Add additional validation rules for the profile_picture field*/
'profile_picture' => ['sometimes', 'image'],
/*Email registration*/
'password' => ['required_if:type,email', 'min:8'],
/*FB registration*/
'fb_user_id' => ['required_if:type,facebook'],
'fb_access_token' => ['required_if:type,facebook'],
/*Instagram registration*/
'ig_user_id' => ['required_if:type,instagram'],
'ig_access_token' => ['required_if:type,instagram'],
]
type
필수 파라미터이며, ’email’, ‘facebook’, ‘instagram’ 중 하나의 값과 같아야 합니다.
필수 파라미터이며, 이메일 형식이어야 하고, 최대 길이는 255자 입니다. users table에 저장된 email 칼럼 값 중에서 중복되는 것이 없어야 합니다.
username
필수 파라미터이며, 최대 길이는 255자 입니다. /^[ㄱ-ㅎ가-힣A-Za-z0-9]+[ㄱ-ㅎ가-힣A-Za-z0-9-_\.]*[ㄱ-ㅎ가-힣A-Za-z0-9]+$/ regex 패턴과 일치해야 하고, users table에 저장된 username 칼럼 값 중에서 중복되는 것이 없어야 합니다. 최대 길이는 255자 입니다.
gender
필수 파라미터이며, 여성인 경우 0, 남성인 경우 1의 값을 가집니다.
user_agreement
필수 파라미터이며, 값은 'on'이어야 합니다.
profile_picture
파라미터가 존재하는 경우 이미지 파일(jpeg, png, gif)이어야 합니다.
password
type 파라미터의 값이 ’email’인 경우 필수 파라미터 입니다. 최소 길이는 8자 입니다.
fb_user_id
type 파라미터의 값이 ‘facebook’인 경우 필수 파라미터 입니다. Facebook API를 이용하여 조회한 사용자의 Facebook ID 값 입니다.
fb_access_token
type 파라미터의 값이 ‘facebook’인 경우 필수 파라미터 입니다. Facebook API를 이용하여 발급 받은 사용자의 access token 값 입니다.
ig_user_id
type 파라미터의 값이 ‘instagram’인 경우 필수 파라미터 입니다. Instagram API를 이용하여 조회한 사용자의 Instagram ID 값 입니다.
ig_access_token
type 파라미터의 값이 ‘instagram’인 경우 필수 파라미터 입니다. Instagram API를 이용하여 발급 받은 사용자의 access token 값 입니다.
Response Structure
이 Endpoint는 처리 결과에 따라 아래 3가지 응답을 반환합니다.
새로운 사용자를 생성한 경우
HTTP Status Code: 200: OK
응답 예시:
{
"meta": {
"code": 200
},
"data": {
"user": {
"id":"#",
...
"api_token":"{API 토큰}"
}
}
}
POST 파라미터가 유효하지 않은 경우
HTTP Status Code: 422: Unprocessable Entity
응답 예시:
{
"meta": {
"code": 422,
"error_type": "ValidationException",
"error_message": "Unprocessable Entity"
},
"data": {
"{파라미터}": [
"{에러 메세지.}"
]
}
}
새로운 사용자 모델 및 관련 모델을 저장하는 데에 실패한 경우
HTTP Status Code: 500: Internal Server Error
응답 예시:
{
"meta": {
"code": 500,
"error_type": "InternalServerError",
"error_message": "Failed to commit transaction."
},
"data":[]
}