회원

로그인

HTTP 요청

POST /api/v0/login HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 50
Host: localhost:8080

{"email":"guest@gmail.com","password":"guestPw12"}

로그인 파라미터

Path Type Description

email

String

사용자 이메일

password

String

사용자 비밀번호

HTTP 응답

HTTP/1.1 200 OK
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTczMDQxNjgsImV4cCI6MTY1NzMwNzc2OH0.kleL-cpLonbVUJSr78JVh3iqw4vtMSas0G7t1UTX8tY
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Login succeed.

전체 회원 조회

HTTP 요청

GET /api/v0/user HTTP/1.1
Host: docs.api.com

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 135

{
  "nickname" : "guest",
  "gender" : "FEMALE",
  "personalUrl" : null,
  "birth" : null,
  "image" : null,
  "introductions" : null
}
Path Type Description

nickname

String

유저 닉네임

gender

String

유저 성별

personalUrl

String

유저의 개인 URL

birth

String

유저 생년월일

image

Object

유저 이미지

introductions

String

유저 소개글

회원가입

HTTP 요청

POST /api/v0/signup HTTP/1.1
Content-Type: application/json
Content-Length: 87
Host: docs.api.com

{
  "nickname" : "testUser",
  "email" : "test@gmail.com",
  "password" : "guestPw12"
}

회원가입 파라미터

Path Type Description

nickname

String

가입할 유저의 닉네임

email

String

가입할 유저의 이메일

password

String

가입할 유저의 비밀번호

HTTP 응답

HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 19

User Create Success

회원정보 수정

HTTP 요청

POST /api/v0/user HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json

{"nickname":"guest","gender":"FEMALE","personalUrl":"http://github.com","birth":null,"introductions":"--"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=test.png
Content-Type: image/png

<<png data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

회원정보 수정

Part Description

request

회원정보 수정

image

수정할 회원 이미지

Path Type Description

nickname

String

유저 닉네임

gender

String

유저 성별

personalUrl

String

유저 개인 페이지

birth

Null

유저 생년월일

introductions

String

유저 자기소개글

HTTP 응답

HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 19

User Create Success

유저 언팔로잉

HTTP 요청

DELETE /api/v0/user/1/follow HTTP/1.1
Host: docs.api.com

유저 언팔로잉 파라미터

Table 1. /api/v0/user/{userId}/follow
Parameter Description

userId

언팔로우할 유저의 아이디

HTTP 응답

HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 21

User Unfollow Success

게시글 팔로잉

HTTP 요청

GET /api/v0/feed?page=0&size=10 HTTP/1.1
Host: localhost:8080

게시글 팔로잉 파라미터

Parameter Description

page

조회할 피드 페이지 번호

size

한 페이지당 조회할 게시글 개수

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 543

{
  "contents" : [ {
    "postId" : 1,
    "category" : "HousewarmingPost",
    "authorId" : 10,
    "authorNickname" : "following1",
    "title" : "number1Post",
    "content" : "number1Content{}{}",
    "visitCount" : 20,
    "images" : null
  }, {
    "postId" : 10,
    "category" : "HousewarmingPost",
    "authorId" : 10,
    "authorNickname" : "following1",
    "title" : "number2Post",
    "content" : "postspotstjdfjsdj???",
    "visitCount" : 1000,
    "images" : null
  } ],
  "size" : 10,
  "hasNext" : false,
  "lastPage" : true
}
Path Type Description

contents[].postId

Number

게시글 ID

contents[].category

String

게시글 카테고리

contents[].authorId

Number

게시글 작성자 ID

contents[].authorNickname

String

게시글 작성자 닉네임

contents[].title

String

게시글 제목

contents[].content

String

게시글 내용

contents[].visitCount

Number

게시글 조회수

contents[].images

Array

게시글에 첨부된 이미지

size

Number

페이지 사이즈

hasNext

Boolean

다음 페이지의 존재 여부

lastPage

Boolean

마지막 페이지 여부

집들이 게시글

집들이 게시글 생성

HTTP 요청

POST /api/v0/hwpost HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: docs.api.com

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=payload
Content-Type: application/json

{"constructionFee":200,"housingTypeCode":"PRIVATE_ROOM","familyType":"SINGLE","area":2,"workerType":"SELF","stylingFee":200,"content":"content{{image}}content1{{image}}","title":"baka"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=fav.png
Content-Type: image/png

chunk1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=fav2.png
Content-Type: image/png

chunk2
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

집들이 게시글 생성 파라미터

Part Description

image

집들이 컨텐츠 이미지

payload

생성 집들이 정보

Path Type Description

title

String

집들이 제목

content

String

집들이 내용

housingTypeCode

String

주거 형태

housingDescription

String

주거 형태 상세 정보

familyType

String

가족 형태

workerType

String

작업자

stylingFee

Number

홈스타일링 예산

constructionFee

Number

공사/시공 예산

area

Number

평수

familyDescription

String

가족 상세 정보

familyCount

Number

가족 수

company

String

시공/스타일링 업체 정보

workDuration

Number

공사 기간

workUnit

String

공사 기간 단위

workTarget

String

시공 대상

workerDescription

String

시공업체 상세 정보

copyrightHolder

String

저작권 표기

linkPayloads

Array

연관 링크

districtCode

String

지역 코드

districtDescription

String

지역 상세 정보

HTTP 응답

HTTP/1.1 201 Created
Location: http://localhost:8080/api/v0/hwpost/38
Content-Type: text/plain;charset=UTF-8
Content-Length: 21
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

post creation success

집들이 게시글 단건 조회

HTTP 요청

GET /api/v0/hwpost/39 HTTP/1.1
Host: docs.api.com

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 643

{
  "postId" : 39,
  "userId" : 11,
  "userNickname" : "guest",
  "title" : "제목2",
  "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
  "visitCount" : 1,
  "scrapCount" : 0,
  "housingType" : "apartment",
  "housingDescription" : null,
  "area" : 2,
  "budget" : {
    "constructionFee" : 100,
    "stylingFee" : 150,
    "total" : 250
  },
  "family" : {
    "type" : "SINGLE",
    "description" : null,
    "familyCount" : null
  },
  "company" : null,
  "workMetadata" : {
    "duration" : null,
    "unit" : null,
    "workTarget" : null,
    "workerType" : "SELF",
    "workerDescription" : null
  },
  "images" : [ ]
}
Path Type Description

postId

Number

게시물 ID

userId

Number

작성자 ID

userNickname

String

작성자 이름

title

String

집들이 제목

content

String

집들이 내용

housingType

String

주거 형태

housingDescription

String

주거 형태 상세 정보

visitCount

Number

조회수

scrapCount

Number

스크랩 회수

family.type

String

가족 형태

family.description

String

가족 상세 정보

family.familyCount

Number

가족 수

budget.stylingFee

Number

홈스타일링 예산

budget.constructionFee

Number

공사/시공 예산

budget.total

Number

총예산

area

Number

평수

company

String

시공/스타일링 업체 정보

workMetadata.workerType

String

작업자

workMetadata.duration

Number

공사 기간

workMetadata.unit

String

공사 기간 단위

workMetadata.workTarget

String

시공 대상

workMetadata.workerDescription

String

시공업체 상세 정보

copyrightHolder

String

저작권 표기

linkPayloads

Array

연관 링크

districtCode

String

지역 코드

districtDescription

String

지역 상세 정보

images

Array

포함 이미지 상세 정보

집들이 게시글 페이징 조회

HTTP 요청

GET /api/v0/hwpost?page=0&size=19 HTTP/1.1
Host: docs.api.com

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 13484

{
  "contents" : [ {
    "postId" : 60,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목20",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 59,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목19",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 58,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목18",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 57,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목17",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 56,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목16",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 55,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목15",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 54,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목14",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 53,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목13",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 52,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목12",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 51,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목11",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 50,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목10",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 49,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목9",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 48,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목8",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 47,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목7",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 46,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목6",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 45,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목5",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 44,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목4",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 43,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목3",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  }, {
    "postId" : 42,
    "userId" : 13,
    "userNickname" : "guest",
    "title" : "제목2",
    "content" : "내용1{{image}}내용2{{image}}내용3{{image}}",
    "visitCount" : 0,
    "scrapCount" : 0,
    "housingType" : "apartment",
    "housingDescription" : null,
    "area" : 2,
    "budget" : {
      "constructionFee" : 100,
      "stylingFee" : 150,
      "total" : 250
    },
    "family" : {
      "type" : "SINGLE",
      "description" : null,
      "familyCount" : null
    },
    "company" : null,
    "workMetadata" : {
      "duration" : null,
      "unit" : null,
      "workTarget" : null,
      "workerType" : "SELF",
      "workerDescription" : null
    },
    "images" : [ ]
  } ],
  "size" : 19,
  "hasNext" : true,
  "lastPage" : false
}
Path Type Description

contents[]postId

Number

게시물 ID

contents[]userId

Number

작성자 ID

contents[]userNickname

String

작성자 이름

contents[]title

String

집들이 제목

contents[]content

String

집들이 내용

contents[]housingType

String

주거 형태

contents[]housingDescription

String

주거 형태 상세 정보

contents[]visitCount

Number

조회수

contents[]scrapCount

Number

스크랩 회수

contents[]family.type

String

가족 형태

contents[]family.description

String

가족 상세 정보

contents[]family.familyCount

Number

가족 수

contents[]budget.stylingFee

Number

홈스타일링 예산

contents[]budget.constructionFee

Number

공사/시공 예산

contents[]budget.total

Number

총예산

contents[]area

Number

평수

contents[]company

String

시공/스타일링 업체 정보

contents[]workMetadata.workerType

String

작업자

contents[]workMetadata.duration

Number

공사 기간

contents[]workMetadata.unit

String

공사 기간 단위

contents[]workMetadata.workTarget

String

시공 대상

contents[]workMetadata.workerDescription

String

시공업체 상세 정보

contents[]copyrightHolder

String

저작권 표기

contents[]linkPayloads

Array

연관 링크

contents[]districtCode

String

지역 코드

contents[]districtDescription

String

지역 상세 정보

contents[]images

Array

포함 이미지 상세 정보

size

Number

페이지 사이즈

hasNext

Boolean

페이지 이후 게시물 존재 여부

lastPage

Boolean

마지막 페이지 여부

집들이 게시글 수정

HTTP 요청

POST /api/v0/hwpost/37 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: docs.api.com

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=payload
Content-Type: application/json

{"constructionFee":200,"housingTypeCode":"PRIVATE_ROOM","familyType":"SINGLE","area":2,"workerType":"SELF","stylingFee":200,"content":"updated content{{image}}content1{{image}}content2{{image}}","title":"updated"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=fav.png
Content-Type: image/png

chunk1
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=fav2.png
Content-Type: image/png

chunk2
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=fav3.png
Content-Type: image/png

chunk3
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Part Description

image

집들이 컨텐츠 이미지

payload

수정 집들이 정보

Path Type Description

title

String

집들이 제목

content

String

집들이 내용

housingTypeCode

String

주거 형태

housingDescription

String

주거 형태 상세 정보

familyType

String

가족 형태

workerType

String

작업자

stylingFee

Number

홈스타일링 예산

constructionFee

Number

공사/시공 예산

area

Number

평수

familyDescription

String

가족 상세 정보

familyCount

Number

가족 수

company

String

시공/스타일링 업체 정보

workDuration

Number

공사 기간

workUnit

String

공사 기간 단위

workTarget

String

시공 대상

workerDescription

String

시공업체 상세 정보

copyrightHolder

String

저작권 표기

linkPayloads

Array

연관 링크

districtCode

String

지역 코드

districtDescription

String

지역 상세 정보

HTTP 응답

HTTP/1.1 201 Created
Location: http://localhost:8080/api/v0/hwpost/37
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

집들이 게시글 삭제

HTTP 요청

DELETE /api/v0/hwpost/40 HTTP/1.1
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: docs.api.com

HTTP 응답(성공)

HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

delete success

HTTP 응답(실패)

HTTP/1.1 401 Unauthorized
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 56

{
  "code" : 401,
  "message" : "Unauthorized Request"
}

집들이 게시글 댓글

집들이 게시글 댓글 생성

HTTP 요청

POST /api/v0/hwpost/comment HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Content-Length: 43
Host: docs.api.com

{
  "comment" : "댓글1",
  "postId" : 4
}

집들이 게시글 댓글 생성 파라미터

include::/Users/mj/workspace/JavaCode/kms/ohouse/build/generated-snippets/hwpost-comment-create/request-fields.adoc

HTTP 응답

HTTP/1.1 201 Created
Location: http://localhost:8080/api/v0/hwpost/comment/5
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

create success

집들이 게시글 댓글 조회

HTTP 요청

GET /api/v0/hwpost/6/comment?size=20&page=0 HTTP/1.1
Host: docs.api.com

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 2618

{
  "contents" : [ {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 36,
    "comment" : "comment29"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 35,
    "comment" : "comment28"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 34,
    "comment" : "comment27"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 33,
    "comment" : "comment26"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 32,
    "comment" : "comment25"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 31,
    "comment" : "comment24"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 30,
    "comment" : "comment23"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 29,
    "comment" : "comment22"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 28,
    "comment" : "comment21"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 27,
    "comment" : "comment20"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 26,
    "comment" : "comment19"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 25,
    "comment" : "comment18"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 24,
    "comment" : "comment17"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 23,
    "comment" : "comment16"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 22,
    "comment" : "comment15"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 21,
    "comment" : "comment14"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 20,
    "comment" : "comment13"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 19,
    "comment" : "comment12"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 18,
    "comment" : "comment11"
  }, {
    "postId" : 6,
    "authorId" : 8,
    "authorName" : "comAuthor",
    "commentId" : 17,
    "comment" : "comment10"
  } ],
  "size" : 20,
  "hasNext" : true,
  "lastPage" : false
}
Path Type Description

contents[]postId

Number

집들이 게시물 ID

contents[]authorId

Number

댓글 작성자 ID

contents[]commentId

Number

댓글 ID

contents[]comment

String

댓글 내용

contents[]authorName

String

작성자 닉네임

size

Number

페이지 사이즈

hasNext

Boolean

페이지 이후 댓글 존재 여부

lastPage

Boolean

마지막 페이지 여부

집들이 게시글 댓글 수정

HTTP 요청

PUT /api/v0/hwpost/comment HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Content-Length: 46
Host: docs.api.com

{
  "comment" : "updated",
  "commentId" : 2
}

집들이 게시글 댓글 수정 파라미터

include::/Users/mj/workspace/JavaCode/kms/ohouse/build/generated-snippets/hwpost-comment-update/request-fields.adoc

HTTP 응답

HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

update success

집들이 게시글 댓글 삭제

HTTP 요청

DELETE /api/v0/hwpost/comment/62 HTTP/1.1
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: docs.api.com

집들이 게시글 댓글 삭제 파라미터

Table 2. /api/v0/hwpost/comment/{commentId}
Parameter Description

commentId

삭제 대상 집들이 댓글 ID

HTTP 응답

HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

delete success

질문 게시글

질문 게시글 생성

HTTP 요청

POST /api/v0/questions HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json

{"title":"제목","content":"내용"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=fav1.png
Content-Type: image/png

someImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=fav2.png
Content-Type: image/png

otherImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

질문게시글 생성 파라미터

Path Type Description

title

String

글 제목

content

String

글 내용

HTTP 응답

HTTP/1.1 201 Created
Location: /api/v0/questions/10
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

질문 게시글 수정

HTTP 요청

POST /api/v0/questions/9 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json

{"title":"수정된 제목","content":"수정된 내용"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=fav1.png
Content-Type: image/png

someImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=fav2.png
Content-Type: image/png

otherImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

질문게시글 수정 파라미터

Path Type Description

title

String

수정할 제목

content

String

수정할 내용

HTTP 응답

HTTP/1.1 201 Created
Location: /api/v0/questions/10
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

질문 게시글 댓글

질문 게시글 댓글 생성

HTTP 요청

POST /api/v0/questions/13/comments HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json

{"content":"댓글 내용"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=fav1.png
Content-Type: image/png

someImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

질문 게시글 댓글 생성 파라미터

Path Type Description

content

String

댓글 내용

HTTP 응답

HTTP/1.1 201 Created
Location: /api/v0/questions/13/14
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

질문 게시글 댓글 수정

HTTP 요청

POST /api/v0/questions/11/12 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request
Content-Type: application/json

{"content":"수정된 댓글 내용"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=fav1.png
Content-Type: image/png

someImage
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

질문 게시글 댓글 수정 파라미터

Path Type Description

content

String

수정할 댓글 내용

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 15

"/api/v0/11/12"

주문

주문 생성

HTTP 요청

POST /api/v0/order HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Accept: application/json
Content-Length: 376
Host: docs.api.com

{
  "shippingAddress" : "shippingAddress",
  "recipient" : "recipient",
  "city" : "city",
  "street" : "street",
  "detail" : "detail",
  "zipcode" : "zipcode",
  "lotNumberAddress" : "lotNumberAddress",
  "shipper" : "shipper",
  "email" : "email",
  "orderItemAddRequests" : [ {
    "productId" : 2,
    "quantity" : 1
  }, {
    "productId" : 3,
    "quantity" : 2
  } ]
}

주문 생성 파라미터

Path Type Description

shipper

String

배송인 명

shippingAddress

String

배송지 명

recipient

String

수령인

city

String

배송지 도시

street

String

배송지 지번

detail

String

상세 주소

zipcode

String

우편번호

lotNumberAddress

String

지번

email

String

이메일

orderItemAddRequests[].productId

Number

주문 상품 상품 아이디

orderItemAddRequests[].quantity

Number

주문 상품 상품 개수

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 19

{
  "orderId" : 1
}
Path Type Description

orderId

Number

등록 오더 아이디

주문 조회

HTTP 요청

GET /api/v0/order HTTP/1.1
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Accept: application/json
Host: docs.api.com

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 720

[ {
  "orderId" : 1,
  "createdAt" : "2022-07-09T03:15:56.160476",
  "orderViewOrderItemResults" : [ {
    "productName" : "productName1",
    "productPrice" : 1000,
    "quantity" : 2,
    "deliveryType" : "DEPOSIT_WAIT"
  }, {
    "productName" : "productName2",
    "productPrice" : 2000,
    "quantity" : 3,
    "deliveryType" : "PAYMENT_COMPLETE"
  } ]
}, {
  "orderId" : 2,
  "createdAt" : "2022-07-09T03:15:56.160788",
  "orderViewOrderItemResults" : [ {
    "productName" : "productName3",
    "productPrice" : 1000,
    "quantity" : 2,
    "deliveryType" : "DEPOSIT_WAIT"
  }, {
    "productName" : "productName4",
    "productPrice" : 2000,
    "quantity" : 3,
    "deliveryType" : "PAYMENT_COMPLETE"
  } ]
} ]
Path Type Description

[].orderId

Number

등록 주문 아이디

[].createdAt

String

주문 등록 시간

[].orderViewOrderItemResults[].productName

String

주문 상품 이름

[].orderViewOrderItemResults[].productPrice

Number

주문 상품 가격

[].orderViewOrderItemResults[].quantity

Number

주문 상품 수량

[].orderViewOrderItemResults[].deliveryType

String

주문 배송 현황

장바구니

장바구니 생성

HTTP 요청

POST /api/v0/cart HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Accept: application/json
Content-Length: 40
Host: docs.api.com

{
  "productId" : 1,
  "itemCount" : 1
}

장바구니 생성 파라미터

Path Type Description

productId

Number

장바구니에 담을 상품 넘버

itemCount

Number

상품 개수

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 20

{
  "cartSize" : 1
}
Path Type Description

cartSize

Number

장바구니에 담긴 상품 개수

상품

상품 조회

HTTP 요청

GET /api/v0/products?attribute=asd HTTP/1.1
Accept: application/json
Host: docs.api.com

상품 조회 파라미터

Parameter Description

attribute

속성

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 186

{
  "contents" : [ {
    "name" : "이름입니다.",
    "price" : 234,
    "shipping" : "NORMAL",
    "brand" : "brand"
  } ],
  "size" : 20,
  "hasNext" : false,
  "lastPage" : true
}
Path Type Description

contents[].name

String

상품 이름

contents[].price

Number

상품 가격

contents[].shipping

String

상품 배송 종류

contents[].brand

String

브랜드 이름

size

Number

페이지 사이즈

hasNext

Boolean

다음 페이지가 있는지 확인

lastPage

Boolean

마지막 페이지인지 확인

상품 리뷰

상품 리뷰 생성

HTTP 요청

POST /api/v0/reviews HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request

{"productId":4,"userId":4,"reviewPoint":3,"contents":"후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

요청 헤더

Name Description

Authorization

JWT 토큰

상품 리뷰 생성 파라미터

Path Type Description

userId

Number

회원 번호

productId

Number

상품 번호

reviewPoint

Number

리뷰 점수

contents

String

리뷰 내용

HTTP 응답

HTTP/1.1 201 Created
Location: http://localhost:8080/api/v0/reviews/82
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 62

{
  "message" : "new review created successful",
  "id" : 82
}
Path Type Description

id

Number

생성된 리뷰 번호

message

String

완료 메세지

상품 사진 리뷰 생성

HTTP 요청

POST /api/v0/reviews HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request

{"productId":3,"userId":3,"reviewPoint":3,"contents":"후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기 후기"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=review-image; filename=test.png
Content-Type: image/png

<<png data>>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

요청 헤더

Name Description

Authorization

JWT 토큰

사진 리뷰 생성 Part

Part Description

review-image

리뷰 이미지 파일

request

생성할 리뷰 정보

사진 리뷰 생성 파라미터

Path Type Description

userId

Number

회원 번호

productId

Number

상품 번호

reviewPoint

Number

리뷰 점수

contents

String

리뷰 내용

HTTP 응답

HTTP/1.1 201 Created
Location: http://localhost:8080/api/v0/reviews/81
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 62

{
  "message" : "new review created successful",
  "id" : 81
}
Path Type Description

id

Number

생성된 리뷰 아이디

message

String

완료 메세지

상품 리뷰 조회

HTTP 요청

GET /api/v0/reviews/2?page=0&size=10&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080

상품 리뷰 조회 파라미터

Parameter Description

page

조회할 페이지 번호

size

페이지 당 리뷰 개수

sort

정렬 기준 1.'createdAt,desc' 2.'helpPoint',desc

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 2577

{
  "pageInformation" : {
    "pageNumber" : 0,
    "pageSize" : 10,
    "totalPages" : 4,
    "numberOfElements" : 10,
    "totalElements" : 40
  },
  "reviews" : [ {
    "id" : 80,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "39content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.00231"
  }, {
    "id" : 79,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "38content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.002136"
  }, {
    "id" : 78,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "37content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.001953"
  }, {
    "id" : 77,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "36content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.001743"
  }, {
    "id" : 76,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "35content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.001572"
  }, {
    "id" : 75,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "34content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.001401"
  }, {
    "id" : 74,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "33content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.001209"
  }, {
    "id" : 73,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "32content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.001033"
  }, {
    "id" : 72,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "31content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.000873"
  }, {
    "id" : 71,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "30content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:06.000696"
  } ]
}
Path Type Description

reviews.[]

Array

리뷰

reviews.[].id

Number

리뷰 id

reviews.[].user

Object

작성자

reviews.[].user.username

String

작성자 닉네임

reviews.[].reviewPoint

Number

리뷰 점수

reviews.[].contents

String

리뷰 내용

reviews.[].helpPoint

Number

도움 점수

reviews.[].createdAt

String

작성 날짜

pageInformation

Object

페이지 정보

pageInformation.pageNumber

Number

현재 페이지 번호

pageInformation.pageSize

Number

페이지에 포함된 최대 리뷰 개수

pageInformation.totalPages

Number

총 페이지 개수

pageInformation.numberOfElements

Number

현재 페이지에 포함된 리뷰 개수

pageInformation.totalElements

Number

총 리뷰 개수

상품 사진 리뷰 조회

HTTP 요청

GET /api/v0/reviews/1?page=0&size=10&sort=createdAt%2Cdesc&reviewType=PHOTO HTTP/1.1
Host: localhost:8080

상품 사진 리뷰 조회 파라미터

Parameter Description

reviewType

조회할 리뷰 종류 NORMAL, PHOTO

page

조회할 리뷰 페이지 번호

size

페이지 당 리뷰 개수

sort

정렬 기준 1.'createdAt,desc' 2.'helpPoint',desc

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 3105

{
  "pageInformation" : {
    "pageNumber" : 0,
    "pageSize" : 10,
    "totalPages" : 4,
    "numberOfElements" : 10,
    "totalElements" : 40
  },
  "reviews" : [ {
    "id" : 40,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "39content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.897999",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 39,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "38content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.897807",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 38,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "37content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.897595",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 37,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "36content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.897271",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 36,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "35content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.897087",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 35,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "34content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.89689",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 34,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "33content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.8967",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 33,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "32content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.896423",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 32,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "31content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.896223",
    "reviewImageUrl" : "src/test/resources/static/"
  }, {
    "id" : 31,
    "user" : {
      "username" : "test@email.com"
    },
    "reviewPoint" : 4,
    "contents" : "30content content content content content content",
    "helpPoint" : 0,
    "createdAt" : "2022-07-09T03:16:05.896021",
    "reviewImageUrl" : "src/test/resources/static/"
  } ]
}
Path Type Description

reviews.[]

Array

리뷰

reviews.[].id

Number

리뷰 id

reviews.[].user

Object

작성자

reviews.[].user.username

String

작성자 닉네임

reviews.[].reviewPoint

Number

리뷰 점수

reviews.[].reviewImageUrl

String

리뷰 사진 경로

reviews.[].contents

String

리뷰 내용

reviews.[].helpPoint

Number

도움 점수

reviews.[].createdAt

String

작성 날짜

pageInformation

Object

페이지 정보

pageInformation.pageNumber

Number

현재 페이지 번호

pageInformation.pageSize

Number

페이지에 포함된 최대 리뷰 개수

pageInformation.totalPages

Number

총 페이지 개수

pageInformation.numberOfElements

Number

현재 페이지에 포함된 리뷰 개수

pageInformation.totalElements

Number

총 리뷰 개수

상품 리뷰 수정

HTTP 요청

POST /api/v0/reviews/84 HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request

{"id":84,"reviewPoint":5,"contents":"reviewupdate reviewupdate reviewupdate reviewupdate reviewupdate"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

요청 헤더

Name Description

Authorization

JWT 토큰

상품 리뷰 수정 파트

Part Description

review-image

수정할 이미지 파일

request

수정할 리뷰 정보

상품 리뷰 수정 파라미터

Path Type Description

id

Number

수정할 리뷰 id

reviewPoint

Number

리뷰 점수

contents

String

리뷰 내용

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 59

{
  "message" : "review modified successful",
  "id" : 84
}
Path Type Description

id

Number

수정된 리뷰 아이디

message

String

작업 결과 메세지

상품 리뷰 삭제

HTTP 요청

DELETE /api/v0/reviews/83 HTTP/1.1
Authorization: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJndWVzdEBnbWFpbC5jb20iLCJyb2xlcyI6W3siYXV0aG9yaXR5IjoiUk9MRV9VU0VSIn1dLCJpYXQiOjE2NTYzMTU3NDQsImV4cCI6MTY1ODA0Mzc0NH0.SN55dE55PSha8BpAFP_J6zd113Tnnk2eDF1Ni2Gd53U
Host: localhost:8080

요청 헤더

Name Description

Authorization

JWT 토큰

HTTP 응답

HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 58

{
  "message" : "review deleted successful",
  "id" : 83
}
Path Type Description

message

String

작업 결과

id

Number

삭제된 리뷰 id