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