status 코드도 정리해줘야 되는지?

response 양식에 맞는 문구들 다 써줘야됨?

response 양식
error는 error 문구 집어넣어서 그대로 뜨게 하기

{
	"statusCode" : 200,
	"message" : "정상처리 완료",
	"data" : request로 보내준 데이터 중 put과 post의 경우에는 수정된 데이터 넣어주기? (get 요청은 아무것도 안넣어줌)
	"error" : null
}
{
	"statusCode" : 404,
	"message" : "해당 URL이 나타내는 리소스를 찾을 수 없습니다.",
	"data" : null,
	"error" :  "입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요."
}

body params / query params /

postman에서 호출한 것 그대로 문서를 만들 수 있음 (나중에)

swagger: express에서 swagger로 문서 만들기 (비효율-express에서 하면 오래 걸림

nestjs나 스프링은 자동으로 만들어줌) → 그냥 postman → 알아보기

500에러는 예상치 못한 에러 → 적어줄 필요가 없음. —> 애초에 문제!

400에러는 예상 가능하니까 대비하라고 써준거임

User (회원)

| 기능 | endpoint | method | Authentication Required (로그인 유무) | request | response | 기타 | | --- | --- | --- | --- | --- | --- | --- | | 로그인 | /auth/google /auth/kakao /auth/naver | post | | body: { name: String, email: String } | { "statusCode" : 201, "message" : "로그인 완료", "data" : null, "error" : null }

{ "statusCode": 400, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | | | 로그아웃 | /auth/sign-out | post | O | 토큰 잘못 전달시 401, 403 …. 404는 애초에 개발이 잘못됨. | { "statusCode" : 204, "message" : "정상처리 완료", "data" : null, "error" : null, } { "statusCode": 401, 403… "message": "로그아웃에 실패했습니다.", "data": null, "error": “로그아웃에 실패했습니다." } | | | 회원가입 | /auth/register | post | | {oathProvider: String, email: String, name: String } | { "statusCode" : 201, "message" : "회원가입 완료", “data” : null, "error" : null } { "statusCode": 400, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | 회원정보가 DB에 없을 경우 자동으로 회원가입되도록 함 | | 닉네임 등록

| /auth/nickname | post | O

403 : admin기능 | { _id: ObjectId, nickname: String } | { "statusCode" : 201, "message" : "정상처리 완료", "data" : null, "error" : null }

{ "statusCode": 409 (conflict) "message": “중복 ~~” "data": null, "error": "닉네임 등록에 실패했습니다. 이 작업을 수행할 수 있는 권한이 없습니다." }

다른 거 중복된 거 등록할 때 | 디폴트 : 기본 회원 이름 등록후 : 등록한 닉네임 | | 회원 탈퇴 | /auth/withdraw | delete | O | { name: String, email: String } | { "statusCode" : 204, "message" : "정상처리 완료", "data" : null, "error" : null }

{ "statusCode": 403, "message": "회원 탈퇴가 정상적으로 되지 않았습니다.", "data": null, "error": "회원 탈퇴에 실패했습니다. 이 작업을 수행할 수 있는 권한이 없습니다." } | | | 커버 이미지 변경 (게시물 1개 당 커버이미지 1개임) | /coverImage | put | O | { url: String }

이미 토큰 있으니까 id필요 없음 | { "statusCode" : 200, "message" : "정상처리 완료", "data" : null, "error" : null }

{ "statusCode": 422, "message": "처리할 수 없는 엔터티", "data": null, "error": "유효하지 않은 커버 사진 데이터입니다. 유효한 이미지 파일을 제공하세요." } | | | 프로필 사진 변경 | /profileImage | put | O | { url: String } | { "statusCode" : 200, "message" : "정상처리 완료", "data" : null, "error" : null }

{ "statusCode": 422, "message": "처리할 수 없는 엔터티", "data": null, "error": "유효하지 않은 프로필 사진 데이터입니다. 유효한 이미지 파일을 제공하세요." } | |

Itineraries (일정관리)

feedId : 게시

| 기능 | endpoint | method | Authentication Required (로그인 유무) | Path params | request | response | 기타 | | --- | --- | --- | --- | --- | --- | --- | --- | | 일정 생성 | /itineraries | post | O | | { title : String, startDate : Date, endDate : Date, numberofPeople : Number, totalExpense: Number, region : String } | { "statusCode" : 201, "message" : “일정 생성 완료”, "data" : null (필요한지 확인), "error" : null }

{ "statusCode": 404, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | | | 일정 세부 내용 조회 | /itineraries/:id | get | O | id : String | - | { "statusCode" : 200, "message" : "정상 처리 완료", ”data” : { title : String, startDate : Date, endDate : Date, numberofPeople : Number, region : String }, "error" : null }

{ "statusCode": 404 "message": "세부 내용 조회에 실패했습니다.", "data": null, "error": “세부 내용 조회에 실패했습니다." } | | | 일정 수정 | /itineraries/:id | put | O | id : String | { title : String, startDate : Date, endDate : Date, numberofPeople : Number, region : String } | { "statusCode" : 200, "message" : “일정 생성 완료”, "data" : null, "error" : null }

{ "statusCode": 404, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | | | 일정 삭제 | /itineraries/:id | delete | O | id : String | - | { "statusCode" : 204, "message" : "정상 처리 완료", "data" : null, "error" : null }

{ "statusCode": 404 "message": "일정 삭제에 실패했습니다.", "data": null, "error": "일정 삭제에 실패했습니다." } | |

schedules (세부일정)

/itineraries/:id/schedules/:scheduleId

| 기능 | endpoint | method | Authentication Required (로그인 유무) | Path params | request | response | 기타 | | --- | --- | --- | --- | --- | --- | --- | --- | | 개별 일정 조회 | /itineraries/:id | get | O | id : String | - | { "statusCode" : 200, "message" : “일정 생성 완료”, "data" : { location: “강릉역”, periodOfDay: “오전”, hour: “8”, minute: “30”, memo: “ktx타기” }, "error" : null }

{ "statusCode": 404, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | | | 개별 일정 생성 | /itineraries | post | O | id : String | { location: “강릉역”, periodOfDay: “오전”, hour: “8”, minute: “30”, memo: “ktx타기” } | { "statusCode" : 201, "message" : “일정 생성 완료”, "data" : null, "error" : null }

{ "statusCode": 404, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | | | 개별 일정 수정 | /itineraries/:id | put | O | id : String | { location: “강릉역”, periodOfDay: “오전”, hour: “8”, minute: “30”, memo: “ktx타기” } | { "statusCode" : 200, "message" : “일정 생성 완료”, "data" : null, "error" : null }

{ "statusCode": 404, "message": "잘못된 요청", "data": null, "error": “입력 데이터가 잘못되었습니다. 요청을 확인하고 다시 시도하세요.” } | | | 개별 일정 삭제 | /itineraries/:id | delete | O | id : String | - | { "statusCode" : 204, "message" : "정상처리 완료", "data" : null, "error" : null }

{ "statusCode": 404 "message": "일정 삭제에 실패했습니다.", "data": null, "error": "일정 삭제에 실패했습니다." } | |