목록 숨기기
회원카카오 인증 ✔PathRequest ParameterResponse Message사용자 정보 확인 ✔PathRequest HeaderResponse Message가입 유무 확인 ✔PathRequest HeaderResponse Message닉네임 중복 확인 ✔PathPath Segment ParameterResponse Message회원가입 ✔PathRequest BodyResponse Message카카오 로그인 에러코드Kakao 인증 참고Kakao 인증 참고지도홈, 지도 조회 ✔PathRequest ParameterResponse Message게시물게시물 열람 ✔PathPath Segment ParameterResponse Message게시물 생성 ✔Pathform-datacom예시Response Message게시물 엿보기 ✔PathPath Segment ParameterResponse Message게시물 삭제 ✔PathPath Segment ParameterResponse Message에러 처리에러 예시백엔드 에러 적용 코드Should Have마이페이지PathResponse Message
회원
OAuth2 토큰, 로그인, 회원가입과 관련된 api 문서.
카카오 인증 ✔
Path
get /oauth2/authorization/kakao
Request Parameter
Name | Required | Type | Description |
redirect_uri | O | String | 리다이렉트 uri
ex) http://localhost:3000/oauth/redirect |
Response Message
- Bearer jwt access 토큰이 포함된 redirect uri
- 응답코드 : HTTP OK 200
사용자 정보 확인 ✔
Path
get /api/v1/users/me
Request Header
- Authentication
- jwt access token (Bearer)
Response Message
Name | Type | Description |
nickname | String | 사용자 이름 |
profileImageUrl | String | 프로필 이미지 URL |
가입 유무 확인 ✔
Path
get api/v1/users/duplicate
Request Header
- Authentication
- jwt access token (Bearer)
Response Message
Name | Type | Description |
isDuplicate | Boolean | 가입 유무 |
nickname | String | 사용자 이름 |
profileImageUrl | String | 프로필 이미지 URL |
닉네임 중복 확인 ✔
Path
get api/v1/users/{nickname}
Path Segment Parameter
Name | Required | Type | Description |
nickname | O | String | 사용자 이름
(URL safe // 정규표현식 )
var regType1 = /^[A-Za-z0-9+]{2,20}$/;
출처 https://ondemand.tistory.com/183 [Cloud Computing On Demand] |
Response Message
Name | Type | Description |
nickname | String | 사용자 이름
(영어 소문자, 영어 대문자, 숫자만 가능) |
isDuplicate | Boolean | 중복 여부
(중복 True, 아니면 False) |
- 응답코드 : HTTP OK 200
- 에러 코드
Error | status | code | message | Description |
NICKNAME_ERROR | 400 | "U003" | "Nickname Is Out Of The Regex" | 정규식과 맞지 않는 사용자 이름 |
회원가입 ✔
Path
post api/v1/users/signup
Request Body
Name | Required | Type | Description |
nickname | O | String | 사용자 이름 |
nickname은 사용자가 직접 설정한다.
Response Message
Name | Type | Description |
nickname | String | 사용자 이름 |
imageUrl | String | 프로필 이미지 URL |
- 응답 코드 : HTTP CREATED(201)
- 에러 코드
Error | status | code | message | Description |
NICKNAME_DUPLICATED | 400 | "U001" | "Nickname Is Duplicated" | 닉네임이 이미 존재 |
ALREADY_CREATED | 400 | "U002" | "User Already Created" | 중복가입
(중복 확인 후 회원가입 중에 누군가 먼저 가입한 상태) |
NICKNAME_ERROR | 400 | "U003" | "Nickname Is Out Of The Regex" | 정규식과 맞지 않는 사용자 이름 |
카카오 로그인 에러코드
Error | status | code | message | Description |
NICKNAME_NULL | 400 | "L001" | "Nickname Not Exist" | 회원의 닉네임 존재하지 않음
(회원가입 중 닉네임 설정 다시 필요) |
USER_NOT_EXIST | 400 | "L002" | "User Not Exist" | 회원가입필요 |
KAKAO_ERROR | 500 | "L003" | "Kakao Server Error" | 카카오 서버 에러 |
SERVER_ERROR | 500 | "L004" | "DB Server Error" | DB 서버 에러 |
Kakao 인증 참고
Kakao 인증 참고
지도
홈, 지도 조회 ✔
지도 화면에 표시되어질 게시물(필름)의 목록을 조회하는 api입니다.
Path
get api/v1/maps
Request Parameter
null
Response Message
Name | Type | Description |
posts | List | 게시물 목록 |
- posts
Name | Type | Description |
postId | Number | 게시물 아이디 |
state | String | 게시물 열람여부
(Closed, Openable, Opened) |
location | List | 위치 정보 |
- location
Name | Type | Description |
latitude | String | 위도 |
longitude | String | 경도 |
- 응답코드 : HTTP OK (200)
- 에러
Error | status | code | message | Description |
LOCATION_ERROR | 400 | "M001" | "Location Input Error" | 위경도 입력 에러(범위 벗어남) |
게시물
게시물 열람 ✔
Path
get api/v1/posts/detail/{postId}
Path Segment Parameter
Name | Required | Type | Description |
postId | O | Number | 게시물 아이디 |
Response Message
Name | Type | Description |
postId | Number | 게시물 아이디 |
title | String | 게시물 제목 |
content | String | 게시물 내용 |
imageUrls | List | 게시물 이미지 URL |
authorNickname | String | 작성자 이름 |
authorImageUrl | String | 작성자 이미지 URL |
createdAt | String | 게시물 작성일시
"yyyy-MM-dd" 형식 |
authorityImageList | List | 열람 권한 유저 리스트 |
location | List | 좌표 |
openerNickname | String | 최초 열람 유저 닉네임 |
openerImageUrl | String | 최초 열람 유저 이미지 |
isOpened | Boolean | 최초 열람 여부
(최초 열람일 경우 True, 아니면 False) |
openedAt | String | 게시물 최초열람일시
"yyyy-MM-dd" 형식 |
previewText | String | 엿보기 문구 |
- ImageUrls = []
Name | Type | Description |
imageOrder | Number | 게시물 이미지 표시순서 |
imageUrl | String | 게시물 이미지 Url |
- authorityImageList = []
Name | Type | Description |
imageOrder | Number | 프로필 이미지 표시 순서 |
authorityId | Number | 권한 목록 아이디 |
imageUrl | String | 프로필 이미지 경로
최대 길이 200자 |
- location
Name | Type | Description |
latitude | String | 위도 |
longitude | String | 경도 |
- 응답코드 : HTTP OK (200)
- 에러코드
Error | status | code | message | Description |
POST_ID_ERROR | 400 | "P001" | "Post Id Not Exist" | 존재하지 않는 Id |
POST_FORBIDDEN | 403 | "P002" | "Post Access Benied" | 열람권한 없음 |
CLOSED_POST_ERROR | 403 | "P010" | "Post Closed" | 열수 없는 포스트 |
게시물 생성 ✔
Posts (필름)을 생성하는 API입니다. 생성 후 썸네일을 위해 정보를 전달한다.
Path
post api/v1/posts
form-data
Key | Value |
com | json포멧의 String |
files | file [] |
com
Name | Required | Type | Description |
title | O | String | 게시물 제목 |
previewText | O | String | 엿보기 문구 |
latitude | O | String | 좌표 |
longitude | O | String | 좌표 |
availableAt | O | String | 열 수 있는 날
"yyyy-MM-dd" |
content | ㅤ | String | 게시물 내용 (imageFiles 혹은 content 둘중 하나는 무조건 포함) |
예시
펼쳐보기
{ "title": "testpost1-title", "previewText": "testpost1-previewText", "latitude": "37.491837217869616", "longitude": "127.02959879978368", "availableAt": "2021-12-11", "content": "testpost1-content / testtesttet" }
files = []

Response Message
Name | Type | Description |
postId | Number | 게시물 아이디 |
title | String | 게시물 제목 |
previewText | String | 엿보기 문구 |
availableAt | String | 열 수 있는 날
("yyyy-MM-dd" 형식) |
state | String | 게시물 열람여부
(Closed, Openable, Opened) |
location | Object | 좌표 |
authorityCount | Number | 열람가능 인원 수
(본인 포함, 아래 리스트 포함) |
authorityImageList | List | 열람가능 맴버 프로필 이미지
(MAX 4개 정보만 전달) |
- location
Name | Type | Description |
latitude | String | 위도 |
longitude | String | 경도 |
- authorityImageList = []
Name | Type | Description |
imageOrder | Number | 이미지 표시 순서 |
authorityId | Number | 권한부여된 사용자 아이디 |
imageUrl | String | 경로 (최대 길이 200자) |
- 응답코드 : HTTP CREATED (201)
- Content-Location: api/v1/posts/{postId}
- 에러코드
Error | status | code | message | Description |
LOCATION_ERROR | 400 | "M001" | "Location Input Error" | 위경도 입력 에러(범위 벗어남) |
TITLE_ERROR | 400 | "P003" | "Title Error" | 제목 저장 오류 |
PREVIEW_TEXT_ERROR | 400 | "P004" | "Preview Text Error" | 엿보기 문구 저장 오류 |
OPENABLE_AT_ERROR | 400 | "P005" | "Date Range Error" | 날짜 범위 오류 |
AUTHORITY_ERROR | 400 | "P006" | "Authority Error" | 권한 닉네임 오류 |
AUTHOR_NICKNAME_ERROR | 400 | "P007" | "Author Nickname Error" | 작성자 닉네임 오류 |
IMAGE_ERROR | 400 | "P008" | "Image Error" | 이미지 저장 오류 |
CONTENT_ERROR | 400 | "P009" | "Content Error" | 내용 저장 오류 |
게시물 엿보기 ✔
Path
get api/v1/posts/{postId}
Path Segment Parameter
Name | Required | Type | Description |
postId | O | Number | 게시물 아이디 |
Response Message
Name | Type | Description |
postId | Number | 게시물 아이디 |
title | String | 게시물 제목 |
previewText | String | 엿보기 문구 |
availableAt | String | 열 수 있는날
"yyyy-MM-dd" 형식 |
authorNickname | String | 작성자 닉네임 |
state | String | 게시물 열람여부
(Closed, Openable, Opened) |
location | Object | 좌표 |
authorityCount | Number | 열람가능 인원 수
(본인 포함, 아래 리스트 포함) |
authorityImageList | List | 4개 정보만 저장 |
- location
Name | Type | Description |
latitude | String | 위도 |
longitude | String | 경도 |
- authorityImageList = []
Name | Type | Description |
imageOrder | Number | 이미지 표시 순서 |
authorityId | Number | 권한 목록 아이디 |
imageUrl | String | 경로
최대 길이 200자 |
- 에러코드
- 응답코드 : HTTP OK (200)
- postId_error : postId가 존재하지 않음
Error | status | code | message | Description |
POST_ID_ERROR | 400 | "P001" | "Post Id Not Exist" | 존재하지 않는 Id |
게시물 삭제 ✔
Path
delete api/v1/posts/{postId}
Path Segment Parameter
Name | Required | Type | Description |
postId | O | Number | 게시물 아이디 |
Response Message
Name | Type | Description |
postId | Number | 게시물 아이디 |
- 응답코드 : HTTP OK (200)
- 에러코드
Error | status | code | message | Description |
POST_ID_ERROR | 400 | "P001" | "Post Id Not Exist" | 존재하지 않는 Id |
에러 처리
- 에러 코드
- HTTP 에러 번호
ex) 400, 403
- 에러 명령어
- 동일 에러코드일 경우 에러 명령어를 통해 분류
- 에러 내용 : 기타 에러일 경우 에러 명령어는 etc_error로 처리하고 내용 상세 문구가 추가된다.
에러 예시
MockHttpServletResponse: Status = 400 Error message = null Headers = [Content-Type:"application/json;charset=UTF-8"] Content type = application/json;charset=UTF-8 Body = {"message":"Nickname Not Exist","status":400,"code":"L001"} Forwarded URL = null Redirected URL = null Cookies = []
백엔드 에러 적용 코드
// COMMON INVALID_INPUT_VALUE(400, "C001", "Invalid Input value"), INVALID_TYPE_VALUE(400, "C002", "Invalid Type Value"), ENTITY_NOT_FOUND(400, "C003", "Entity Not Found"), METHOD_NOT_ALLOWED(405, "C004", "Invalid Input value"), INTERNAL_SERVER_ERROR(500, "C005", "Server Error"), HANDLE_ACCESS_DENIED(403, "C006", "Access is denied"), // Login NICKNAME_NULL(400, "L001", "Nickname Not Exist"), USER_NOT_EXIST(400, "L002", "User Not Exist"), KAKAO_ERROR(400, "L003", "Kakao Server Error"), SERVER_ERROR(400, "L004", "DB Server Error"), // Map LOCATION_ERROR(400, "M001", "Location Input Error"), // User NICKNAME_DUPLICATED(400, "U001", "Nickname Is Duplicated"), ALREADY_CREATED(400, "U002", "User Already Created"), NICKNAME_ERROR(400,"U003", "Nickname Is Out Of The Regex"), // Post POST_ID_ERROR(400, "P001", "Post Id Not Exist"), POST_FORBIDDEN(403, "P002", "Post Access Denied"), TITLE_ERROR(400, "P003", "Title Error"), PREVIEW_TEXT_ERROR(400, "P004", "Preview Text Error"), OPENABLE_AT_ERROR(400, "P005", "Date Range Error"), AUTHORITY_ERROR(400, "P006", "Authority Error"), AUTHOR_NICKNAME_ERROR(400, "P007", "Author Nickname Error"), IMAGE_ERROR(400, "P008", "Image Error"), CONTENT_ERROR(400, "P009", "Content Error");
Should Have
마이페이지
Path
get api/v1/mypage/posts
Response Message
Name | Type | Description |
posts | List | 엿보기 게시물 리스트 형식 |
- posts
- location
- authorityImageList = []
Name | Type | Description |
postId | Number | 게시물 아이디 |
title | String | 게시물 제목 |
previewText | String | 엿보기 문구 |
availableAt | String | 열 수 있는날
"yyyy-MM-dd" 형식 |
authorNickname | String | 작성자 닉네임 |
state | String | 게시물 열람여부
(Closed, Openable, Opened) |
location | Object | 좌표 |
authorityCount | Number | 열람가능 인원 수
(본인 포함, 아래 리스트 포함) |
authorityImageList | List | 4개 정보만 저장 |
Name | Type | Description |
latitude | String | 위도 |
longitude | String | 경도 |
Name | Type | Description |
imageOrder | Number | 이미지 표시 순서 |
authorityId | Number | 권한 목록 아이디 |
imageUrl | String | 경로
최대 길이 200자 |
- 에러코드
- 응답코드 : HTTP OK (200)