## Base URL
`http://101.101.219.23/api/login-service/`
## Sign up API
### Request
* url
`/v1/user/sign-up`
* method
`POST`
* header
|method|parameter|Description|Required|
|-----|----------|-----------|--------|
|Content-Type|application/json|||
* request body
{ "userId": {{String}}, "userName": {{String}}, "email": {{String}}, "accessToken": {{String}}, "nickName": {{String}}, "address": {{Long}}, "category": [], "intro": {{Long}} }
|Field|Type|Description|Example|Required|
|-----|----|-----------|-------|--------|
|userId|String|카카오톡에서 받아오는 유저 oauthId||O|
|userName|String|카카오톡에서 받아오는 유저 이름||O|
|email|String|카카오톡에서 받아오는 유저 이메일||O|
|accessToken|String|로그인 토큰||O|
|nickName|String|유저 닉네임(중복X)||O|
|address|Long|위치||O|
|category|Long List|관심 종목||O|
|intro|String|자기소개||O|
### Response
* success response
* header
|method|parameter|Description|Required|
|-----|----------|-----------|--------|
|Authorization|{{token}}|access token|O|
* body
```
{
"status": 200,
"success": true,
"message": "회원가입을 축하드립니다!\\n운동플래닛과 건강한 운동생활을\\n시작해보세요!"
}
```
|Field|Type|Description|Example|Required|
|-----|----|-----------|-------|--------|
|status|integer|HTTP STATUS CODE|200|O|
|success|boolean|성공 여부|true|O|
|message|String|회원가입 성공 메세지||O|
* fail response
{ "status":{{Integer}}, "success": {{Boolean}}, "responseType": {{String}}, "message": {{String}} }
|Field|Type|Description|Example|Required|
|-----|----|-----------|-------|--------|
|status|integer|HTTP STATUS CODE|500|O|
|success|boolean|성공 여부|false|O|
|responseType|String|오류 실패 메세지|"USER_NOT_FOUND"|O|
|message|String|오류 실패 메세지|"사용자를 찾을 수 없습니다"|O|
|status|success|ResponseType|message|상황|
|------|-------|------------|-------|---|
|403|false|"SUSPENDED_USER_FAIL"|"신고로 정지된 사용자입니다."|정지된 사용자가 회원 가입을 시도했을 경우|
|400|false|"SIGN_UP_DUPLICATE"|"동일한 이메일이 있습니다."|이미 같은 이메일을 가지고 있는 사용자가 회원 가입을 시도했을 경우|
|400|false|"SIGN_UP_DUPLICATE"|"이미 가입한 유저입니다."|이미 같은 카카오 accessToken를 가지고 있는 사용자가 회원 가입을 시도했을 경우|
|400|false|"SIGN_UP_DUPLICATE"|"동일한 닉네임이 있습니다."|이미 같은 닉네임을 가지고 있는 사용자가 회원 가입을 시도했을 경우|
|400|false|"SIGN_UP_DUPLICATE"|"이미 가입한 유저입니다."|이미 같은 카카오 oauthId를 사용자가 회원 가입을 시도했을 경우|
|400|false|"INVALID_METHOD"|"메소드 유형이 잘못 되었습니다."|POST가 아닌 다른 메소드로 요청한 경우|
|500|false|"INTERNAL_SERVER_ERROR"|"서버 내부 오류"|서버 내부 오류|
POST "/toys"
GET "/toys" - 전체 조회
조회의 경우 기본적으로 페이징 가능, 디폴트의 경우 index 0 부터 전체를 가져옴
SUCCESS
복수 조회시 응답
status code : 200
{
"toys": [
{
"id": 1,
"title": "",
"description": "토이 프로젝트 큐레이팅 웹 서비스",
"category": "WEB",
"logoUrl": "<https://avatars.githubusercontent.com/u/69037013?v=4>",
"active": "2021-02-04T16:15:30",
},
...
]
}
GET "/toys" - 정렬, 필터링
GET "/toys/{id}"
FAIL
status code : 404
{
"message": "toy를 찾을 수 없습니다."
}
SUCCESS
status code : 201
{
"id": 1,
"title": "",
"description": "토이 프로젝트 큐레이팅 웹 서비스",
"category": "WEB",
"logoUrl": "<https://avatars.githubusercontent.com/u/69037013?v=4>",
"active": "2021-02-04T16:15:30",
"healthCheck": true,
"contributors": ["toneyparky", "sypark9646", "octocat"],
"organization": "SOPT",
"skills": ["React", "Java", "SpringBoot"],
"period": "LESS_THAN_THREE_DAYS"
"githubLink": "<https://www.github.com/toneyparky/repository>",
"serviceLink": "<https://www.cocktailpick.com>",
}
GET "/toys/contain" ⇒ 검색
GET "/toys/auto-complete" ⇒ 자동완성
반환값은
id와 name 입니다.
PUT "/toys/{id}"
{
"id": 2,
"title": "토이랜드17",
"description": "토이프로젝트 큐레이팅 앱 서비스",
"logoUrl": "<https://avatars.githubusercontent.com/u/69037013?v=4>",
"githubIdentifier": 112,
"password": "password486",
"serviceLink": "<https://naver.com>",
"githubLink": "<https://github.com/toy-land/backend1>",
"organizationId": 3,
"category": "AI",
"period": "LESS_THAN_A_WEEK",
"contributors": [{"githubIdentifier": 111, "username": "toneyhi"}],
"readme": "",
"pushedAt": "2021-02-05 13:25:49.000000",
"email": "test@naver.com",
"techStackIds": [2, 8]
}
SUCCESS
status code : 200
{
"message": "toy 수정 성공"
}
FAIL
status code : 400
{
"message": "적당한 클라이언트 에러 메세지"
}
status code : 401
{
"message": "비밀번호 오류"
}
status code : 500
{
"message": "적당한 서버 에러 메세지"
}