Board API

게시글 작성 시, category 값은 Optional 입니다.

null로 보낼 경우, 서버 측에서 EMPTY 값으로 매핑 시키며 추후 수정 시, EMPTY 값으로 넣어주셔야 합니다.

조회 시, category에 대한 필터링을 원한다면 유의미한 ENUM 값을 넣어주시면 됩니다. 없을 경우, 전체 조회로 간주합니다.

게시판 타입

아래 대분류는 메뉴 탭에서 선택되는 게시판 분류입니다.<br/> 대분류에 따라 중분류가 다르게 나뉘어집니다.

대분류 enum 값 중분류 enum 값

홍보 게시판

ADVERTISEMENT

인테리어

INTERIOR

홍보 게시판

ADVERTISEMENT

토지

ESTATE

홍보 게시판

ADVERTISEMENT

부동산

REAL_ESTATE

자유 게시판

DEFAULT

질문

QUESTION

자유 게시판

DEFAULT

일상

DAILY

소개 게시판

INTRO

트렌드

TREND

소개 게시판

INTRO

후기

REVIEW

1. 홍보 게시글 작성하기

Request
POST /api/v1/boards HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTcsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hFg1IIbd9J_en16cSBh-voPF0WQzDoIan-PM5Z5TP3DNI9BXFb-nLfaQ6jpnYlJsVj1kEbi33Zp2mr0qYu92kw
Accept: application/json
Content-Length: 316
Host: localhost:8080

{
  "title" : "훈이가 쓰는 홍보 게시글",
  "code" : "<body> <div> <h2>감자머리 짱구는 내 친구. </h2> </div> <div> <br/> <b>안녕</b> 하세요. 훈이에요.</div> </body>",
  "category" : "INTERIOR",
  "imageUrls" : [ "img006, img007" ],
  "prefixCategory" : "ADVERTISEMENT",
  "fixed" : true
}

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 65

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : 1464
}

2. 자유 게시글 작성하기

Request
POST /api/v1/boards HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTcsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hFg1IIbd9J_en16cSBh-voPF0WQzDoIan-PM5Z5TP3DNI9BXFb-nLfaQ6jpnYlJsVj1kEbi33Zp2mr0qYu92kw
Accept: application/json
Content-Length: 312
Host: localhost:8080

{
  "title" : "짱구가 쓰는 자유 게시글",
  "code" : "<body> <div> <h2>주먹밥 머리 훈이는 내 친구. </h2> </div> <div> <br/> <b>안녕</b> 하세요. 짱구에요.</div> </body>",
  "category" : "DAILY",
  "imageUrls" : [ "img004, img005" ],
  "prefixCategory" : "DEFAULT",
  "fixed" : false
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 65

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : 1462
}

3. 소개 게시글 작성하기

Request
POST /api/v1/boards HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTYsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hPPYVFNWH93NM3bv6QVofO0a1peH3MYxibICocGUEFFiW-V1M3Zz3R6osQd0cI10HcZ4qvlk9jiEy5CKYSTLLA
Accept: application/json
Content-Length: 317
Host: localhost:8080

{
  "title" : "오도이촌 소개 게시글",
  "code" : "<body> <div> <h2>오도이촌 소개를 해보겠습니다. </h2> </div> <div> <br/> <b>안녕</b> 하세요. 오도리입니다.</div> </body>",
  "category" : "REVIEW",
  "imageUrls" : [ "img002, img003" ],
  "prefixCategory" : "INTRO",
  "fixed" : false
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 65

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : 1455
}

4. 메인페이지 소개 게시글 조회

prefix : COMMUNITY, INTRO

limit : 개수

category : INTRO 인 경우에만 작성

Request
GET /api/v1/boards/preview?prefix=INTRO&limit=5 HTTP/1.1
Accept: application/json
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 532

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : [ {
    "boardId" : 1452,
    "title" : "짱구는 못말려",
    "code" : "<body> <div> <h2>짱구는 못말려</h2> </div> <div> <i>철수</i>야 나랑 놀자 </div> </body>",
    "oneLineContent" : "짱구는 못말려철수야 나랑 놀자",
    "nickName" : "테스트유저1",
    "createdAt" : "2024-03-25T12:10:56.420+00:00",
    "imageUrl" : "img001",
    "commentCount" : 1,
    "category" : "TREND",
    "prefixCategory" : "INTRO",
    "fixed" : false
  } ]
}

5. 게시글 리스트 조회 ( 페이징 처리 )

prefix : 필수값

category, search, order(default : RECENT) : 선택값

prefix 값은 게시판 타입입니다. 소개/자유/홍보

category 값은 말머리 입니다. 없을 경우, 값을 보내지 않으면 말머리에 대한 필터링을 거치지 않고 데이터를 반환합니다.

Request
GET /api/v1/boards?prefix=INTRO HTTP/1.1
Accept: application/json
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 839

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : {
    "content" : [ {
      "boardId" : 1456,
      "title" : "짱구는 못말려",
      "code" : "<body> <div> <h2>짱구는 못말려</h2> </div> <div> <i>철수</i>야 나랑 놀자 </div> </body>",
      "oneLineContent" : "짱구는 못말려철수야 나랑 놀자",
      "nickName" : "테스트유저1",
      "createdAt" : "2024-03-25T12:10:56.745+00:00",
      "imageUrl" : "img001",
      "commentCount" : 1,
      "category" : "TREND",
      "prefixCategory" : "INTRO",
      "fixed" : false
    } ],
    "size" : 8,
    "totalElements" : 1,
    "last" : true,
    "totalPages" : 1,
    "first" : true,
    "number" : 0,
    "sort" : {
      "empty" : true,
      "unsorted" : true,
      "sorted" : false
    },
    "numberOfElements" : 1,
    "empty" : false
  }
}

6. 게시글 상세 조회

Request
GET /api/v1/boards/1457 HTTP/1.1
Accept: application/json
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 650

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : {
    "boardId" : 1457,
    "title" : "짱구는 못말려",
    "code" : "<body> <div> <h2>짱구는 못말려</h2> </div> <div> <i>철수</i>야 나랑 놀자 </div> </body>",
    "nickName" : "테스트유저1",
    "createdAt" : "2024-03-25T12:10:56.827+00:00",
    "imageUrls" : [ "img001" ],
    "loveCount" : 0,
    "category" : "TREND",
    "prefixCategory" : "INTRO",
    "commentCount" : 1,
    "comments" : [ {
      "commentId" : 35702,
      "nickName" : "테스트유저1",
      "content" : "댓글이란다.",
      "createdAt" : "2024-03-25T12:10:56.830+00:00"
    } ]
  }
}

7. 게시글 수정

Request
PUT /api/v1/boards/1458 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTYsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hPPYVFNWH93NM3bv6QVofO0a1peH3MYxibICocGUEFFiW-V1M3Zz3R6osQd0cI10HcZ4qvlk9jiEy5CKYSTLLA
Accept: application/json
Content-Length: 255
Host: localhost:8080

{
  "title" : "짱구는 못말려",
  "code" : "<body> <div> <h2>짱구는 못말려</h2> </div> <div> <i>철수</i>야 나랑 놀자 </div> </body>",
  "category" : "TREND",
  "imageUrls" : [ "img001" ],
  "prefixCategory" : "INTRO",
  "fixed" : false
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 65

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : 1458
}

8. 게시글 삭제

Request
DELETE /api/v1/boards/1453 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTYsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hPPYVFNWH93NM3bv6QVofO0a1peH3MYxibICocGUEFFiW-V1M3Zz3R6osQd0cI10HcZ4qvlk9jiEy5CKYSTLLA
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 48

{
  "code" : "SUCCESS",
  "message" : "성공"
}

9. 말머리 조회

Request
GET /api/v1/boards/category?name=DEFAULT HTTP/1.1
Accept: application/json
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 221

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : [ {
    "code" : "질문",
    "name" : "QUESTION"
  }, {
    "code" : "일상",
    "name" : "DAILY"
  }, {
    "code" : "나눔",
    "name" : "SHARING"
  } ]
}

10. 자신이 작성한 게시글 목록 조회

Request
GET /api/v1/boards/my?page=0 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTYsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hPPYVFNWH93NM3bv6QVofO0a1peH3MYxibICocGUEFFiW-V1M3Zz3R6osQd0cI10HcZ4qvlk9jiEy5CKYSTLLA
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 967

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : {
    "content" : [ {
      "boardId" : 1451,
      "title" : "짱구는 못말려",
      "oneLineContent" : "짱구는 못말려철수야 나랑 놀자",
      "createdAt" : "2024-03-25T12:10:56.083+00:00",
      "imageUrl" : "img001",
      "category" : "TREND",
      "prefixCategory" : "INTRO",
      "commentCnt" : 0
    }, {
      "boardId" : 1450,
      "title" : "짱구는 못말려",
      "oneLineContent" : "짱구는 못말려철수야 나랑 놀자",
      "createdAt" : "2024-03-25T12:10:55.870+00:00",
      "imageUrl" : "img001",
      "category" : "TREND",
      "prefixCategory" : "INTRO",
      "commentCnt" : 1
    } ],
    "size" : 10,
    "totalElements" : 2,
    "last" : true,
    "totalPages" : 1,
    "first" : true,
    "number" : 0,
    "sort" : {
      "empty" : true,
      "unsorted" : true,
      "sorted" : false
    },
    "numberOfElements" : 2,
    "empty" : false
  }
}

11. 자신이 작성한 댓글의 게시글 목록 조회

Request
GET /api/v1/boards/my/comment?page=0 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTcsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hFg1IIbd9J_en16cSBh-voPF0WQzDoIan-PM5Z5TP3DNI9BXFb-nLfaQ6jpnYlJsVj1kEbi33Zp2mr0qYu92kw
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 776

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : {
    "content" : [ {
      "commentId" : 35734,
      "boardId" : 1466,
      "title" : "짱구는 못말려",
      "commentContent" : "댓글이란다."
    }, {
      "commentId" : 35733,
      "boardId" : 1466,
      "title" : "짱구는 못말려",
      "commentContent" : "댓글이란다."
    }, {
      "commentId" : 35732,
      "boardId" : 1465,
      "title" : "짱구는 못말려",
      "commentContent" : "댓글이란다."
    } ],
    "size" : 10,
    "totalElements" : 3,
    "last" : true,
    "totalPages" : 1,
    "first" : true,
    "number" : 0,
    "sort" : {
      "empty" : true,
      "unsorted" : true,
      "sorted" : false
    },
    "numberOfElements" : 3,
    "empty" : false
  }
}

12. 자신이 좋아요한 게시글 목록 조회

Request
GET /api/v1/boards/my/love?page=0 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0X2pob3VzZV9jb20iLCJleHAiOjE3MTEzNzA0NTcsImF1dGgiOiJVU0VSIiwidHlwZSI6Ik5PTkUifQ.hFg1IIbd9J_en16cSBh-voPF0WQzDoIan-PM5Z5TP3DNI9BXFb-nLfaQ6jpnYlJsVj1kEbi33Zp2mr0qYu92kw
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 967

{
  "code" : "SUCCESS",
  "message" : "성공",
  "data" : {
    "content" : [ {
      "boardId" : 1459,
      "title" : "짱구는 못말려",
      "oneLineContent" : "짱구는 못말려철수야 나랑 놀자",
      "createdAt" : "2024-03-25T12:10:56.992+00:00",
      "imageUrl" : "img001",
      "category" : "TREND",
      "prefixCategory" : "INTRO",
      "commentCnt" : 1
    }, {
      "boardId" : 1460,
      "title" : "짱구는 못말려",
      "oneLineContent" : "짱구는 못말려철수야 나랑 놀자",
      "createdAt" : "2024-03-25T12:10:57.020+00:00",
      "imageUrl" : "img001",
      "category" : "TREND",
      "prefixCategory" : "INTRO",
      "commentCnt" : 0
    } ],
    "size" : 10,
    "totalElements" : 2,
    "last" : true,
    "totalPages" : 1,
    "first" : true,
    "number" : 0,
    "sort" : {
      "empty" : true,
      "unsorted" : true,
      "sorted" : false
    },
    "numberOfElements" : 2,
    "empty" : false
  }
}