Skip to content

board

게시판 목록

GET
/boards

공개(ACTIVE)된 게시판만. 포털 메뉴가 이걸로 그려진다.

Cache-Control: public, max-age=60 이 붙는다 — 인자도 로그인도 없어 누구에게나 같은 응답이고, 포털이 화면마다 부르기 때문이다. 게시판을 새로 만들면 최대 1분 뒤에 메뉴에 나타난다.

Request

GET/boards

Response

200

PublicBoard

FieldTypeRequiredConstraintsDescription
namestringrequired주소에 쓰는 이름
titlestringrequired화면에 보이는 이름
descriptionobjectrequired
writeRolestringrequiredADMIN, MEMBER글을 쓸 수 있는 사람
commentEnabledbooleanrequired댓글을 받는 게시판인가
likeEnabledbooleanrequired좋아요를 받는 게시판인가
[
  {
    "name": "string",
    "title": "string",
    "description": {},
    "writeRole": "ADMIN",
    "commentEnabled": true,
    "likeEnabled": true
  }
]

Playground

Samples

Powered by VitePress OpenAPI

게시글 목록

GET
/boards/{name}/posts

공개된 글만. 고정 글이 먼저, 그다음 최신순.

인자 없이 부른 첫 페이지에만 Cache-Control: public, max-age=60 이 붙는다 — 게시판을 열면 누구나 보게 되는 한 장이라, 링크가 퍼질 때의 순간 트래픽을 CDN 이 받아 낸다. 페이지를 넘기거나 크기를 바꾸면 no-store 다. 새 글은 최대 1분 뒤에 목록에 나타난다.

Request

GET/boards/{name}/posts

Path Parameters

NameTypeRequiredConstraintsDescription
namestringrequired

Query Parameters

NameTypeRequiredConstraintsDescription
pagenumberoptionaldefault 1페이지 번호(1부터)
sizenumberoptionalmax 50 · default 20페이지 크기

Response

200

PageResponse

FieldTypeRequiredConstraintsDescription
itemsPublicPostSummary[]required
pagenumberrequired현재 페이지 번호
sizenumberrequired페이지 크기
totalCountnumberrequired전체 항목 수
totalPagesnumberrequired전체 페이지 수

PublicPostSummary

FieldTypeRequiredConstraintsDescription
idnumberrequired
titlestringrequired
summaryobjectrequired
authorPublicAuthorrequired
typenumberrequired1, 2
idnumberrequired회원 글이면 회원번호, 운영자 글이면 0
namestringrequired
pinnedbooleanrequired
secretbooleanrequired비공개 글인가
commentEnabledbooleanrequired게시판·글 설정을 합친 결과
likeEnabledbooleanrequired게시판·글 설정을 합친 결과
publishedAtobjectrequired
viewCountnumberrequired
commentCountnumberrequired
{
  "items": [
    {
      "id": 0,
      "title": "string",
      "summary": {},
      "author": {
        "type": 0,
        "id": 0,
        "name": "string"
      },
      "pinned": true,
      "secret": true,
      "commentEnabled": true,
      "likeEnabled": true,
      "publishedAt": {},
      "viewCount": 0,
      "commentCount": 0
    }
  ],
  "page": 0,
  "size": 0,
  "totalCount": 0,
  "totalPages": 0
}

Playground

Server
Variables
Key
Value

Samples

Powered by VitePress OpenAPI

게시글 하나

GET
/boards/{name}/posts/{id}

비공개 글의 본문은 쓴 사람에게만 나간다 — 나머지에게는 content 가 빠진다.

공개 글에만 Cache-Control: public, max-age=60 이 붙는다 — 오래 태우려는 것이 아니라 링크가 퍼질 때의 순간 트래픽을 CDN 이 받아 내기 위한 1분이다. 그동안의 조회는 서버에 닿지 않아 조회수도 그만큼 덜 는다. 비공개 글은 no-store 라 공유 캐시에 남지 않는다.

Request

GET/boards/{name}/posts/{id}

Path Parameters

NameTypeRequiredConstraintsDescription
namestringrequired
idnumberrequired

Response

200

PublicPostDetail

FieldTypeRequiredConstraintsDescription
idnumberrequired
titlestringrequired
summaryobjectrequired
authorPublicAuthorrequired
pinnedbooleanrequired
secretbooleanrequired비공개 글인가
commentEnabledbooleanrequired게시판·글 설정을 합친 결과
likeEnabledbooleanrequired게시판·글 설정을 합친 결과
publishedAtobjectrequired
viewCountnumberrequired
commentCountnumberrequired
contentobjectoptional본문(마크다운)
commentsPublicComment[]required

PublicAuthor

FieldTypeRequiredConstraintsDescription
typenumberrequired1, 2
idnumberrequired회원 글이면 회원번호, 운영자 글이면 0
namestringrequired

PublicComment

FieldTypeRequiredConstraintsDescription
idnumberrequired
parentIdobjectrequired답글이면 부모 댓글 번호
authorPublicAuthorrequired
typenumberrequired1, 2
idnumberrequired회원 글이면 회원번호, 운영자 글이면 0
namestringrequired
contentobjectoptional
secretbooleanrequired
createdAtstringrequired
{
  "id": 0,
  "title": "string",
  "summary": {},
  "author": {
    "type": 0,
    "id": 0,
    "name": "string"
  },
  "pinned": true,
  "secret": true,
  "commentEnabled": true,
  "likeEnabled": true,
  "publishedAt": {},
  "viewCount": 0,
  "commentCount": 0,
  "content": {},
  "comments": [
    {
      "id": 0,
      "parentId": {},
      "author": {
        "type": 0,
        "id": 0,
        "name": "string"
      },
      "content": {},
      "secret": true,
      "createdAt": "string"
    }
  ]
}

Playground

Server
Variables
Key
Value

Samples

Powered by VitePress OpenAPI