다이어리 api 문서 - swimme/react-diary-client Wiki

Original URL: https://github.com/swimme/react-diary-client/wiki/다이어리-api-문서

🔈 사용자는 자신이 쓴 다이어리만 볼 수 있습니다. 다이어리 = Post

1. 다이어리 목록 조회

Request

GET /api/posts?page={page}

/api/posts?page=1
query Description
page 페이지 번호

Response

{
  "total": 2,
  "posts": [
    {
      "id": 5,
      "userId": 11,
      "content": "오늘의 일기2",
      "createdAt": "2021-05-17T15:43:35.000Z",
      "moodId": 2,
      "isCompleted": 1
    },
    {
      "id": 1,
      "userId": 11,
      "content": "오늘의 일기",
      "createdAt": "2021-05-17T15:43:35.000Z",
      "moodId": 1,
      "isCompleted": 1
    }
  ]
}

Field Type Description
total number 전체 다이어리 개수
posts array 해당 페이지의 다이어리 목록
Field Type Description
post.id number 다이어리 id
post.userId number 다이어리 작성자 id
post.content string 내용
post.createdAt string 다이어리 작성날짜
post.moodId number 기분 테마 id
post.isCompleted boolean 최종제출 여부

2. 다이어리 상세 조회

Request

GET /api/posts/:id

/api/posts/1
parameter Description
id 조회할 다이어리 id

Response

{
  "id": 1,
  "userId": 11,
  "content": "오늘의일기",
  "isCompleted": 1,
  "createdAt": "2021-05-17T15:43:35.000Z",
  "moodId": 1
}
Field Type Description
id number 다이어리 id
userId number 작성자 id
content string 내용
createdAt string 작성날짜
moodId number 기분 테마 id
isCompleted boolean 최종제출 여부

3. 다이어리 작성

Request

POST /api/posts

{
  "content" : "오늘의 일기",
  "moodId" : 1
}

Field Type Description
content string 내용
moodId number 기분 테마 id

Response

{
  "id": 1,
  "userId": 11,
  "content": "오늘의 일기",
  "isCompleted": 1,
  "createdAt": "2021-05-17T15:43:35.000Z",
  "moodId": 1
}
Field Type Description
id number 다이어리 id
userId number 작성자 id
content string 내용
createdAt string 작성날짜
moodId number 기분 테마 id
isCompleted boolean 최종제출 여부

4. 다이어리 수정

Request

PATCH /api/posts/:id

{
  "content" : "오늘 하루는 조금 바빳다.",
  "moodId" : 1
}

parameter Description
id 수정할 다이어리 id
Field Type Description Optional
content string 내용 optional
moodId number 기분 테마 id optional

Response

{
  "id": 1,
  "userId": 11,
  "content": "오늘 하루는 조금 바빴다.",
  "isCompleted": 1,
  "createdAt": "2021-05-17T15:43:35.000Z",
  "moodId": 1
}
Field Type Description
id number 다이어리 id
userId number 작성자 id
content string 내용
createdAt string 작성날짜 (수정날짜x)
moodId number 기분 테마 id
isCompleted boolean 최종제출 여부

5. 다이어리 삭제

Request

DELETE /api/posts/:id
parameter Description
id 삭제할 다이어리 id

Response

true
Type Description
boolean 삭제 성공여부 (오류일 경우 return error)

6. 다이어리 검색

Request

GET /api/posts/search?keyword={keyword}&page={page}


/api/posts/search?keyword=hi&page=1
query Description
keyword 검색 키워드
page 페이지 번호

Response

[
  {
    "id": 3,
    "userId": 11,
    "content": "hihihi",
    "isCompleted": 1,
    "createdAt": "2021-05-21T19:14:45.000Z",
    "moodId": 1
  },
  {
    "id": 2,
    "userId": 11,
    "content": "hi",
    "isCompleted": 1,
    "createdAt": "2021-05-17T15:43:35.000Z",
    "moodId": 1
  }
]
Field Type Description
id number 다이어리 id
userId number 작성자 id
content string 내용
createdAt string 작성날짜 (수정날짜x)
moodId number 기분 테마 id
isCompleted boolean 최종제출 여부

7. 기분 테마별 모든 다이어리 조회

Request

GET /api/posts/mood/:id?page={page}


/api/posts/mood/1?page=1

parameter Description
id 기분 테마 id
query Description
page 페이지 번호

Response

[
  {
    "id": 5,
    "userId": 11,
    "content": "신나는 오늘의 일기",
    "isCompleted": 1,
    "createdAt": "2021-04-29T15:00:00.000Z",
    "moodId": 1
  },
  {
    "id": 1,
    "userId": 11,
    "content": "기분 좋은 오늘의 일기",
    "isCompleted": 1,
    "createdAt": "2021-05-17T15:43:35.000Z",
    "moodId": 1
  }
]
Field Type Description
moodId number 기분 테마 id
count number 해당 월에 작성된 각 기분테마의 다이어리 수

8. 월간 기분 테마별 다이어리 개수 조회

Request

GET /api/posts/mood?term={term}


/api/posts/mood?term=202105
query Description
term 조회할 연도월 'yyyymm'

Response

[
  {
    "moodId": 1,
    "count": 3
  },
  {
    "moodId": 2,
    "count": 1
  },
  {
    "moodId": 3,
    "count": 0
  }
]
Field Type Description
moodId number 기분 테마 id
count number 해당 월에 작성된 각 기분테마의 다이어리 수