HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🐣
프론트엔드 데브코스 3기 교육생
/
🥳
나영팀
/
🌞
팀 프로젝트 - 월 수화 목금
/
📃
API 문서
📃

API 문서

 
📄 API 바로가기 링크
기본 요구사항
사용자는 회원가입과 로그인을 할 수 있습니다.
사용자는 채널에 올라온 글을 볼 수 있습니다.
사용자는 가입자 목록을 볼 수 있습니다.
사용자는 가입자를 이름으로 검색을 할 수 있습니다.
사용자는 가입자의 정보를 볼 수 있습니다.
사용자는 포스트 혹은 가입자를 검색할 수 있습니다.
인증된 사용자는 자신의 정보를 변경할 수 있습니다.
인증된 사용자는 채널에 올라온 글을 볼 수 있습니다.
인증된 사용자는 채널에 포스트를 남길 수 있습니다.
인증된 사용자는 포스트를 좋아요 할 수 있습니다.
인증된 사용자는 포스트에 댓글을 남길 수 있습니다.
인증된 사용자는 자신의 알림 목록을 확인 할 수 있습니다.
SPA 형태로 만들어주세요.
엉뚱한 페이지에 접속하면 404 페이지를 보여주세요.
 
보너스 요구사항
사용자는 현재 접속 중인 사용자를 볼 수 있습니다.
인증된 사용자는 다른 가입자에게 메시지를 보낼 수 있습니다.
인증된 사용자는 자신에게 온 메시지 목록을 확인 할 수 있습니다.
인증된 사용자는 특정 사용자와의 메시지 대화 내역을 확인 할 수 있습니다.
인증된 사용자는 프로필 이미지 변경 및 포스트를 작성할 때 이미지를 첨부할 수 있습니다. 파일 업로드를 구현해보세요.
다크 모드를 적용해보세요.
 
📄
API 모델 정보
 
API_END_POINT
💡
http://kdt.frontend.3rd.programmers.co.kr
 
 

인증

로그인

POST /login
Request Body
{ "email": String, "password": String }
Response
{ "user": User, "token": String }

회원가입

POST /signup
Request Body
{ "email": String, "fullName": String, "password": String }
Response
{ "user": User, "token": String }

로그아웃

POST /logout

인증 확인

GET /auth-user
Request Header
Authorization: bearer JWT토큰
Response
User
 

사용자

사용자 목록

GET /users/get-users
Request Header
offset: Optional<Number> limit: Optional<Number>
Response
User[]
 

현재 접속중인 사용자 목록

GET /users/online-users
Response
User[]
 

사용자 정보

GET /users/{userId}
Response
User
 

프로필 이미지 변경

POST /users/upload-photo
Request Header
Authorization: bearer JWT토큰
Request Body
FormData (isCover를 반드시 false로 넣어야 합니다.)
isCover: false image: Binary
Response
User
 

커버 이미지 변경

POST /users/upload-photo
Request Header
Authorization: bearer JWT토큰
Request Body
FormData (isCover를 반드시 true로 넣어야 합니다.)
isCover: false image: Binary
Response
User
 
 

설정

내 정보 변경

PUT /settings/update-user
Request Header
Authorization: bearer JWT토큰
Request Body
{ "fullName": String, "username": String }
Response
User
 

비밀번호 변경

PUT /settings/update-password
Request Header
Authorization: bearer JWT토큰
Request Body
{ "password": String }
 
 

채널

한글 인코딩 필요!

채널 목록

GET /channels
Response
Channel[]
 

특정 채널 정보

GET /channels/{channelName}
Response
Channel
 
 

포스트

특정 채널의 포스트 목록

GET /posts/channel/{channelId}
Request Params
offset: Optional<Number> limit: Optional<Number>
Response
Post[]
 

특정 사용자의 포스트 목록

GET /posts/author/{authorId}
Request Params
offset: Optional<Number> limit: Optional<Number>
Response
Post[]
 

특정 채널에 포스트 작성하기

POST /posts/create
Request Header
Authorization: bearer JWT토큰
Request Body
FormData
title: String, image: Binary | null, channelId: String
 

특정 포스트 상세 보기

GET /posts/{postId}
Response
Post
 

내가 작성한 포스트 수정하기

PUT /posts/update
Request Header
Authorization: bearer JWT토큰
Request Body
FormData
이미지를 삭제하려면 imageToDeletePublicId에 imagePublicId를 넣어주세요.
postId: String title: String image: Binary | null imageToDeletePublicId: Optional<String> channelId: String

내가 작성한 포스트 삭제하기

DELETE /posts/delete
Request Header
Authorization: bearer JWT토큰
Request Body
{ "id": String }
 

좋아요

특정 포스트 좋아요

POST /likes/create
Request Header
Authorization: bearer JWT토큰
Request Body
{ "postId": String }
Response
Like

특정 포스트 좋아요 취소

DELETE /likes/delete
Request Header
Authorization: bearer JWT토큰
Request Body
{ "id": String }
Response
Like
 

댓글

 

특정 포스트에 댓글 달기

POST /comments/create
Request Header
Authorization: bearer JWT토큰
Request Body
{ "comment": String, "postId": String }
Response
Comment
 

특정 포스트에 작성한 내 댓글 지우기

DELETE /comments/delete
Request Header
Authorization: bearer JWT토큰
Request Body
{ "id": String }
Response
Comment
 

알림

나의 알림 목록

GET /notifications
Request Header
Authorization: bearer JWT토큰
Response
Notification[]
 

알림 확인 처리

PUT /notifications/seen
Request Header
Authorization: bearer JWT토큰
 

알림 생성

POST /notifications/create
Request Header
Authorization: bearer JWT토큰
Request Body
notificationTypeId는 type에 해당하는 객체의 id를 넣어주세요.
  • COMMENT일 경우엔 댓글 id
  • FOLLOW일 경우엔 팔로우 id
  • LIKE일 경우엔 좋아요 id
  • MESSAGE일 경우엔 메시지 id
    • postId는 type이 FOLLOW일 경우엔 null로 보내주세요.
{ "notificationType": "COMMENT" | "FOLLOW" | "LIKE" | "MESSAGE", "notificationTypeId": String, "userId": String, "postId": Nullable<String> }
Response
Notification
 
 

팔로우

특정 유저 팔로우

POST /follow/create
Request Header
Authorization: bearer JWT토큰
Request Body
{ "userId": String }
Response
Follow
 

특정 유저 언팔로우

DELETE /follow/delete
Request Header
Authorization: bearer JWT토큰
Request Body
{ "id": String }
Response
Follow
 

메시지

나의 메시지함 (소통한 유저 목록)

GET /messages/conversations
Request Header
Authorization: bearer JWT토큰
Response
Conversation[]
 

특정 사용자와 소통한 메시지 목록

GET /messages
Request Header
Authorization: bearer JWT토큰
Request Params
userId: String
Response
Message[]
 

특정 사용자에게 메시지 전송

POST /messages/create
Request Header
Authorization: bearer JWT토큰
Request Body
{ "message": String, "receiver": String // 사용자 id }
Response
Message
 

메시지 확인 처리

PUT /messages/update-seen
Request Header
Authorization: bearer JWT토큰
Request Body
{ "sender": String // 사용자 id }
 
 

검색

사용자 검색

GET /search/users/{query}
Response
User[]
 

전체 검색 (포스트, 사용자)

GET /search/all/{query}
Response
(User | Post)[]