Skip to content

API Specification

Dongjin Lim edited this page Oct 23, 2022 · 52 revisions

template


code.seholee.com:8082/example

Operational Summary

Operational description

Parameters

Path

name type description required
id type parameter description(optional) Optional or Required

Headers

name type description required
id type parameter description(optional) Optional or Required

Cookies

name type description required
id type parameter description(optional) Optional or Required

Body

name type description required
id type parameter description(optional) Optional or Required

Response

200 OK : description
{
    // Response
}
201 Created: description
{
    // Response
}

auth

로그인


code.seholee.com:8082/auth/login

detail

Parameters

Body
name type description required
uid string 로그인 할 사용자의 아이디 Required
password string 로그인 할 사용자의 비밀번호 Required

Response

200 Ok : 성공적으로 로그인 된 경우
{
    "data" : {
        "expiresIn": 3600,
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTEsIm5hbWUiOiLsnbTshLjtmLjrobHsnbQiLCJzZXJ2aWNlTnVtYmVyIjoiMjItNzYwMDEwMTEiLCJpYXQiOjE2NjQ5NTUxNDgsImV4cCI6MTY2NDk1ODc0OH0.Ay5K2VE7Fu2okskO-9UCBatZcrZjS3f1FFBFgQwpXGY"
    },
    "message" : "login"
}
이외의 에러코드 작성 바람

로그아웃


code.seholee.com:8082/auth/logout

detail

Response

200 Ok : 성공적으로 로그아웃된 경우
{
    "data" : {
        logOutUserData
    },
    "message" : "logout"
}
이외의 에러코드 작성 바람

messages

읽지 않은 메시지 조회


code.seholee.com:8082/message/{id}

detail

Parameters

Path

name type description required
id integer 채팅방 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "data" : [
        {
          _id:  Int,	
  		text:  String,
  		sendTime:  DATE_TIME,
  		deleteTime:  DATE_TIME,
  		senderId:  Int,
  		belongChatroomId: Int,},
...
    ],
    "message" : "get unread messages"
}

최근 읽은 메시지 갱신


code.seholee.com:8082/message/setRecentRead

detail

Parameters

Body

name type description required
chatroomId integer 채팅방 아이디 Required
recentMessageId integer 최근 메시지 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "message" : "success"
}

읽지 않은 사용자 조회


code.seholee.com:8082/message/unread

detail

Parameters

Body

name type description required
chatroomId integer 채팅방 아이디 Required
recentMessageId integer 최근 메시지 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "data" : [
        <User>,...
    ],
    "message" : "get unread peoples"
}

읽은 사용자 조회


code.seholee.com:8082/read

detail

Parameters

Path

name type description required
chatroomId integer 채팅방 아이디 Required
recentMessageId integer 최근 메시지 아이디 Required

Response

200 Ok : 성공적으로 조회된 경우
{
    "data" : [
        <User>,...
    ],
    "message" : "get read peoples"
}

users

사용자 생성


code.seholee.com:8082/users

detail

사용자 생성 api

Parameters

Body

name type description required
uid String 아이디 Required
password String 패스워드 Required
name String 성명 Required
serviceNumber String 군번 Required
enlistmentDate String 입대일 Required
affiliatedUnit String 전역일 Required
militaryRank String 계급 Required
image String 프로필 이미지 URL Not Required

Response

201 Created : 성공적으로 친구 추가 된 경우
{
    "message" : "created"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "{JSON FEILD} is empty"
}
//ValidationError
409 Conflict: 이미 데이터가 존재할 경우
  • 친구 id가 존재하지 않는 경우
{
    "message" : "This uid ${userData.uid} already exists"
}

사용자 검색


code.seholee.com:8082/users/friends

detail

Parameters

Body

name type description required
name String 성명 Required
serviceNumber String 군번 Required

Response

200 OK : 성공적으로 친구 추가 된 경우
{
    "data": <UserData>
    "message" : "findOne"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "{JSON FEILD} is empty"
}
//ValidationError

사용자 조회 by Id


code.seholee.com:8082/users/{id}

detail

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Path

name type description required
id integer 조회할 사용자의 id Required

Response

200 Ok : 성공적으로 사용자를 조회한 경우
{
    "data" : {
            {
                userId: number,
                uid: string,
                name: string,
                serviceNumber: string,
                affiliatedUnit: string | null,
                militaryRank: string | null,
                image: string | null,
                enlistmentDate: Date | null
            }
    },
    "message" : "findOne"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

내 정보 조회


code.seholee.com:8082/users/me

detail

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 친구를 조회한 경우 ``` { "data" : { { userId: number, uid: string, name: string, serviceNumber: string, affiliatedUnit: string | null, militaryRank: string | null, image: string | null, enlistmentDate: Date | null } }, "message" : "findOne" } ```
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

사용자 정보 수정


code.seholee.com:8082/users/updateUserInfo

detail

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Body

name type description required
userId String 사용자 식별자 Required
uid String 아이디 Not Required
password String 패스워드 Not Required
name String 성명 Not Required
serviceNumber String 군번 Not Required
enlistmentDate String 입대일 Not Required
affiliatedUnit String 전역일 Not Required
militaryRank String 계급 Not Required
image String 프로필 이미지 URL Not Required

Response

200 Ok : 성공적으로 업데이트한 경우 ``` { "message" : "updated" } ```
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

사용자 비밀번호 수정


code.seholee.com:8082/users/updateUserPw

detail

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Body

name type description required
currentPassword String 현재 비밀번호 Required
password String 수정된 비밀번호 Required

Response

200 Ok : 성공적으로 업데이트한 경우 ``` { "message" : "updated" } ```
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

사용자 삭제


code.seholee.com:8082/users/{id}

detail

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Path

name type description required
id integer 삭제할 사용자의 id Required

Response

200 Ok : 성공적으로 친구를 삭제한 경우
{
    "data" : {
        "count": 1
    },
    "message" : "deleted"
}
400 Bad Request: 요청에서 id가 없는 경우
{
    "message" : "userID is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
  • 사용자 id가 존재하지 않는 경우
{
    "message" : "User doesn't existId"
}

퍼블릭 키 업데이트


code.seholee.com:8082/users/publicKey

detail

Parameters

Body

name type description required
publicKey String 퍼블릭키 Required

Response

200 OK : 성공적으로 퍼블릭키 추가 된 경우
{
    "message" : "updated"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "{JSON FEILD} is empty"
}
//ValidationError
409 Conflict: 사용자가 존재하지 않는 경우
  • 사용자 id가 존재하지 않는 경우
{
    "message" : "User doesn't existId"
}

퍼블릭키 조회


code.seholee.com:8082/publicKey

detail

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Path

name type description required
id integer 조회할 사용자의 id Required

Response

200 Ok : 성공적으로 퍼블릭키를 조회한 경우
{
    "data" : {
            "key":<publicKey>
    },
    "message" : "updated"
}
400 Bad Request: 필수 필드가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
  • 사용자 id가 존재하지 않는 경우
{
    "message" : "User doesn't existId"
}

friends

친구 추가


code.seholee.com:8082/friends

detail

현 사용자의 친구를 추가하는 기능

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Body

name type description required
followingId integer 친구 추가 할 사용자의 userId Required

Response

201 Created : 성공적으로 친구 추가 된 경우
{
    "data" : {
        "followerId": "number",
        "followingId": "number"
    },
    "message" : "created"
}
400 Bad Request: followingId가 없는 경우
{
    "message" : "friendData is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 친구 id가 존재하지 않거나, 이미 친구 관계인 경우
  • 친구 id가 존재하지 않는 경우
{
    "message" : "This follower id ${friendData.followerId} not exists"
}
  • 이미 친구관계인 경우
{
    "message" : "This friend follwer-${friendData.followerId} and followind-${friendData.followerId} already exists"
}

친구 조회


code.seholee.com:8082/friends

detail

현 사용자의 친구를 조회하는 기능

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Response

200 Ok : 성공적으로 친구를 조회한 경우
{
    "data" : {
        [
            {
                userId: number,
                uid: string,
                name: string,
                serviceNumber: string,
                affiliatedUnit: string | null,
                militaryRank: string | null,
                image: string | null,
                enlistmentDate: Date | null
            },
            ...
        ]
    },
    "message" : "findFriends by userid ${userId}"
}
400 Bad Request: 사용자 정보가 없는 경우
{
    "message" : "UserId is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우
{
    "message" : "Authentication token missing"
}
409 Conflict: 사용자가 존재하지 않는 경우
{
    "message" : "User doesn't exist"
}

친구 삭제


code.seholee.com:8082/friends

detail

현 사용자의 친구를 삭제하는 기능

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Body

name type description required
followingId integer 친구 추가 할 사용자의 userId Required

Response

200 Ok : 성공적으로 친구를 삭제한 경우
{
    "data" : {
        "count": 1
    },
    "message" : "deleted"
}
400 Bad Request: 요청에서 followingId가 없는 경우
{
    "message" : "friendData is empty"
}
ValidationError
401 Unauthorized: 인증 토큰이 잘못된 경우
{
    "message" : "Wrong authentication token"
}
404 Not Found: 인증 토큰이 없는 경우 ``` { "message" : "Authentication token missing" } ```
409 Conflict: 사용자가 존재하지 않는 경우 - 친구가 존재하지 않는 경우 ``` { "message" : "Friends doesn't exist" } - 사용자 id가 존재하지 않는 경우 ``` { "message" : "User doesn't existId" } ```

socketio

token 문제로 연결되지 않는 경우, connect_error에 invalid라면 Wrong authentication token, 없다면 Authentication token missing를 리턴.

allclear (이상무)

allclear 생성


code.seholee.com:8082/allclear/create

detail

parameter로 받은 메시지를 [이상무 보고allclear]로 만들어줌.

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Body

name type description required
messageId integer allclear로 만들 message id Required

Response

201 Created: message를 allclear로 만드는 데 성공한 경우
{
  "message": "success"
}
409 Conflict: 이미 allclear가 만들어진 message를 또 allclear로 만들려고 시도하는 경우
{
  "message": "All clear already exist."
}

allclear 응답 전체 조회


code.seholee.com:8082/allclear/response/all/{messageId}

detail

path parameter로 받은 메시지 id에 해당하는 allclear 응답 전체를 사용자와 함께 리턴함.

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Path

name type description required
messageId integer allclear를 조회할 message id Required

Response

200 Ok: message id에 해당하는 allclear를 조회하는 데 성공한 경우
{
  "data": [
    {
      "allClearResponseId": 1,
      "type": "PROBLEM",
      "content": "cleartest",
      "allClearId": 1,
      "userId": 5,
      "user": {
        "userId": 5,
        "uid": "tester1",
        "name": "1번로그인예제1",
        "serviceNumber": "11111111",
        "affiliatedUnit": null,
        "militaryRank": null,
        "image": null,
        "enlistmentDate": null
      }
    },
    {
      "allClearResponseId": 2,
      "type": "PROBLEM",
      "content": "cleartest",
      "allClearId": 1,
      "userId": 6,
      "user": {
        "userId": 6,
        "uid": "tester2",
        "name": "2번로그인예제2",
        "serviceNumber": "22222222",
        "affiliatedUnit": null,
        "militaryRank": null,
        "image": null,
        "enlistmentDate": null
      }
    }
  ],
  "message": "get whole all clear reponses"
}
403 Forbidden: allclear 개설자가 아닌데 해당 API에 접근한 경우
{
  "message": "You are not permitted to access this resource"
}
404 Not Found: path parameter로 받은 message id가 allclear가 아닌 경우
{
  "message": "All clear does not exist."
}

작성한 allclear 응답 조회


code.seholee.com:8082/allclear/response/{messageId}

detail

user가 path parameter로 받은 메시지 id에 해당하는 allclear에 작성한 내용을 리턴함.

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Path

name type description required
messageId integer allclear를 조회할 message id Required

Response

200 Ok: user가 작성한 message id에 해당하는 allclear를 조회하는 데 성공한 경우
{
  "data": {
    "allClearResponseId": 1,
    "type": "PROBLEM",
    "content": "cleartest",
    "allClearId": 1,
    "userId": 5
  },
  "message": "get all clear reponse"
}
404 Not Found: path parameter로 받은 message id가 allclear가 아닌 경우
{
  "message": "All clear does not exist."
}

allclear 응답 작성


code.seholee.com:8082/allclear/response/create

detail

parameter로 받은 message id의 allclear에 내용을 작성함.

Parameters

Headers

name type description required
Authorization Bearer [TOKEN] 형식의 string 사용자 인증 정보가 들어있는 토큰 Required

Body

name type description required
messageId integer [작성할 allclear에 해당하는 message id Required
allClearResponseType enum('PROBLEM', 'CLEAR') 응답 종류 Required
content string 응답 내용 Required

Response

200 Ok: user가 작성한 message id에 해당하는 allclear를 조회하는 데 성공한 경우
{
  "message": "success"
}
404 Not Found: parameter로 받은 message id가 allclear가 아닌 경우
{
  "message": "All clear does not exist."
}