Skip to content

모각밥 참여 (Participations) API

yanggwangseong edited this page Nov 19, 2024 · 4 revisions

Participations

Method Endpoint Description
GET /participations 참여 했던 모각밥 리스트 가져오기
GET /participations/:participationId 참여 했던 특정 모각밥 정보 조회
POST /participations 모각밥 참여 신청
DELETE /participations/:participationId 모각밥 참여 취소

[GET] 참여한 모각밥 리스트 조회 (/participations)

Headers

Key Value Description
Authorization Bearer jwt-access-token JWT 인증을 위한 액세스 토큰

Request

No request body required.

Response

Success (200 OK):

{
   "success": true,
   "data": [
       {
           "participationId": "67890",
           "articleId": "12345",
           "title": "홍대 모각밥 모집",
           "startTime": "2024-11-20T18:00:00Z",
           "endTime": "2024-11-20T20:00:00Z",
           "createdAt": "2024-11-19T12:00:00Z"
       },
       {
           "participationId": "67891",
           "articleId": "12346",
           "title": "강남 모각밥 모집",
           "startTime": "2024-11-22T19:00:00Z",
           "endTime": "2024-11-22T21:00:00Z",
           "createdAt": "2024-11-19T12:30:00Z"
       }
   ]
}

Exception

  • 401 Unauthorized: 인증 토큰이 없거나 유효하지 않은 경우
{
    "success": false,
    "timestamp": "2023-02-22T06:25:08.663Z",
    "status": 401,
    "message": "인증 토큰이 없거나 유효하지 않습니다",
    "path": "/participations"
}

[GET] 특정 참여 정보 조회 (/participations/:participationId)

Headers

Key Value Description
Authorization Bearer jwt-access-token JWT 인증을 위한 액세스 토큰

Request

No request body required.

Response

Success (200 OK):

{
   "success": true,
   "data": {
       "participationId": "67890",
       "articleId": "12345",
       "title": "홍대 모각밥 모집",
       "startTime": "2024-11-20T18:00:00Z",
       "endTime": "2024-11-20T20:00:00Z",
       "participants": [
           {
               "memberId": "67890",
               "nickname": "yang",
               "profileImage": "https://example.com/profiles/yang.jpg"
           },
           {
               "memberId": "67891",
               "nickname": "johndoe",
               "profileImage": "https://example.com/profiles/johndoe.jpg"
           }
       ],
       "createdAt": "2024-11-19T12:00:00Z"
   }
}

Exception

  • 401 Unauthorized: 인증 토큰이 없거나 유효하지 않은 경우
{
    "success": false,
    "timestamp": "2023-02-22T06:25:08.663Z",
    "status": 401,
    "message": "인증 토큰이 없거나 유효하지 않습니다",
    "path": "/participations/67890"
}
  • 404 Not Found: 참여 기록이 존재하지 않는 경우
{
    "success": false,
    "timestamp": "2023-02-22T06:25:08.663Z",
    "status": 404,
    "message": "해당 참여 기록을 찾을 수 없습니다",
    "path": "/participations/67890"
}

[GET] 특정 참여 정보 조회 (/participations/:participationId)

Headers

Key Value Description
Authorization Bearer jwt-access-token JWT 인증을 위한 액세스 토큰
Content-Type application/json 요청 본문이 JSON 형식임을 지정

Request

{
   "articleId": "54321"
}

Response

Success (201 Created):

{
   "success": true,
   "data": {
       "participationId": "12345",
       "articleId": "54321",
       "memberId": "67890",
       "createdAt": "2024-11-19T12:00:00Z"
   }
}

Exception

  • 400 Bad Request: 필수 필드 누락
{
    "success": false,
    "timestamp": "2023-02-22T06:25:08.663Z",
    "status": 400,
    "message": "articleId는 필수입니다",
    "path": "/participations"
}
  • 409 Conflict: 이미 참여 중인 모집글
{
    "success": false,
    "timestamp": "2023-02-22T06:25:08.663Z",
    "status": 409,
    "message": "이미 해당 모집글에 참여하고 있습니다",
    "path": "/participations"
}

[DELETE] 모각밥 참여 취소 (/participations/:participationId)

Headers

Key Value Description
Authorization Bearer jwt-access-token JWT 인증을 위한 액세스 토큰

Request

No request body required.

Response

Success (200 OK):

{
   "success": true,
   "data": true
}

Exception

  • 404 Not Found: 참여 기록이 존재하지 않는 경우
{
    "success": false,
    "timestamp": "2023-02-22T06:25:08.663Z",
    "status": 404,
    "message": "해당 참여 기록을 찾을 수 없습니다",
    "path": "/participations/67890"
}

Home

🏠 Home

📜 API 명세서

📊 ERD (Entity Relationship Diagram)

아래는 프로젝트 데이터베이스 설계 ERD입니다:

📖 Rule

Clone this wiki locally