/server_nas

Primary LanguageJavaScript

Knotknot - Server

가족이 함께쓰는 감정일기 어플리케이션인 Knotknot의 서버 프로그램입니다.

API Reference


로그인

  POST /users/login
  • Authorization: None
  • Request Body:
Field Name Type Description
email string Required. 사용자 이메일
password string Required. 사용자 암호
  • Response (Success):
  Status: 200 OK
Field Name Type Description
result string 결과 메세지
token string JWT 토큰
nickname string 사용자 닉네임
family_code string 사용자가 속한 가족 코드
  • Response (Failure):
  Status: 401 Unauthorized   // 존재하지 않는 사용자

회원가입

  POST /users/join
  • Authorization: None
  • Request Body:
Field Name Type Description
email string Required. 사용자 이메일
password string Required. 사용자 암호
nickname string Required. 사용자 닉네임
birth string Optional. 생년월일
family_code string Optional. 가족코드 (null이면 새로운 가족코드 생성)
  • Response (Success):
  Status: 200 OK
Field Name Type Description
result string 결과 메세지
  • Response (Failure):
  Status: 400 Bad Request   // 이미 가입된 이메일 주소입니다
  Status: 400 Bad Request   // 가족 코드가 잘못되었습니다

가족 코드 조회하기

  GET /users/familycode
  • Authorization: Bearer Token
  • Response (Success):
  Status: 200 OK
Field Name Type Description
family_code string 사용자가 속한 가족 코드

가족이 작성한 일기들의 목록 가져오기

  GET /diary
  • Query String Parameters:
Parameter Type Description
date string Optional. 해당 날짜의 일기 목록을 가져옴 (YYYY-MM-dd)
  • Authorization: Bearer Token

  • Response (Success):

  Status: 200 OK
Field Name Type Description
diaries object[] 일기 리스트
diary_id int 일기 고유번호
description string 일기 내용
emotion int 감정티콘 번호
createdAt string 작성 시간
writer string 작성자 email
commentsCount int 일기의 코멘트 수
user.nickname string 작성자 닉네임

일기 작성하기

  POST /diary
  • Authorization: Bearer Token
  • Request Body:
Field Name Type Description
description string Required. 일기 내용
emotion int Required. 감정티콘 번호
createdAt string Optional. 작성 시간
  • Response (Success):
  Status: 200 OK

일기 수정하기

  PUT /diary/:diaryId
  • Path Parameters:
Parameter Type Description
diaryId int Required. 수정하려는 일기의 고유번호
  • Authorization: Bearer Token
  • Request Body:
Field Name Type Description
description string Optional. 일기 내용
emotion int Optional. 감정티콘 번호
  • Response (Success):
  Status: 200 OK
  • Response (Failure):
  Status: 401 Unauthorized   // user (JWT info) != writer
  Status: 404 Not Found     // diary with diaryId doesn't exist

일기 삭제하기

  DELETE /diary/:diaryId
  • Path Parameters:
Parameter Type Description
diaryId int Required. 삭제하려는 일기의 고유번호
  • Authorization: Bearer Token

  • Response (Success):

  Status: 200 OK
  • Response (Failure):
  Status: 401 Unauthorized   // user (JWT info) != writer
  Status: 404 Not Found     // diary with diaryId doesn't exist

특정 일기에 대한 코멘트 목록 가져오기

  GET /comments/:diaryId
  • Path Parameters:
Parameter Type Description
diaryId int Required. 코멘트를 조회하려는 일기의 고유번호
  • Authorization: Bearer Token
  • Response (Success):
  Status: 200 OK
Field Name Type Description
comments object[] 코멘트 리스트
comments_id int 코멘트 고유번호
content string 코멘트 내용
createdAt string 작성 시간
writer string 작성자 email
user.nickname string 작성자 닉네임
  • Response (Failure):
  Status: 401 Unauthorized   // 사용자가 일기(diaryId) 작성자의 가족이 아닐 때

코멘트 작성하기

  POST /comments/:diaryId
  • Path Parameters:
Parameter Type Description
diaryId int Required. 코멘트를 작성할 일기의 고유번호
  • Authorization: Bearer Token
  • Request Body:
Field Name Type Description
content string Required. 코멘트 내용
createdAt string Optional. 작성 시간
  • Response (Success):
  Status: 200 OK
  • Response (Failure):
  Status: 401 Unauthorized   // 사용자가 일기(diaryId) 작성자의 가족이 아닐 때

코멘트 수정하기

  PUT /comments/:commentsId
  • Path Parameters:
Parameter Type Description
commentsId int Required. 수정하려는 코멘트의 고유번호
  • Authorization: Bearer Token
  • Request Body:
Field Name Type Description
content string Required. 코멘트 내용
  • Response (Success):
  Status: 200 OK
  • Response (Failure):
  Status: 401 Unauthorized   // user (JWT info) != writer
  Status: 404 Not Found     // diary with diaryId doesn't exist

코멘트 삭제하기

  DELETE /comments/:commentsId
  • Path Parameters:
Parameter Type Description
commentsId int Required. 삭제하려는 코멘트의 고유번호
  • Authorization: Bearer Token

  • Response (Success):

  Status: 200 OK
  • Response (Failure):
  Status: 401 Unauthorized   // user (JWT info) != writer
  Status: 404 Not Found     // diary with diaryId doesn't exist

캘린더 데이터 가져오기

  GET /calendar
  • Query String Parameters:
Parameter Type Description
yearMonth string Optional. 해당 시기의 캘린더 정보를 가져옴 (YYYY-MM)
  • Authorization: Bearer Token

  • Response (Success):

  Status: 200 OK
Field Name Type Description
calendar object[] 캘린더 정보 리스트
date string 날짜 (YYYY-MM-dd)
user_count_total int 당일 가족구성원의 수
user_count_diary int 당일 일기를 작성한 가족구성원의 수
user_count_comments int 당일 코멘트를 작성한 가족구성원의 수