Post List

This page describes the request data identifiers and response structure required to build a post list page.

Data Identifier

{
  "dataID": "GET_POST_LIST",
  "page": 1,
  "page_link_url": "/post/list",
  "page_link_hash": "HASH",
  "board_seq": 200,
  "list_per_page": 20,
  "block_per_page": 5,
  "search_type": "default",
  "search_keyword": "keyword",
  "order": "create_date",
  "sort": "desc"
}
KeyDescription
dataIDUnique data identifier
pagePage number
page_link_urlPage navigation link URL
page_link_hashPage navigation link hash (required when navigating to a hash link within a hash page)
board_seqBoard sequence
list_per_pageNumber of items displayed per page
block_per_pageNumber of page links shown in the paging block on a page
search_typeSearch filter type (default: author/title/body, distance: distance in meters)
search_keywordSearch keyword
orderSort criterion (create_date: creation date, distance: distance)
sortSort order (asc: descending, desc: ascending)

HTML

<div id="post_list">
    <div v-for="post in output.post_list">
        <div>
            <small>{{post.reg_name}}</small>
            <small> / </small>
            <small>{{post.create_date}}</small>
        </div>
        <h3>{{post.subject}}</h3>
        <p>
            {{post.content}}
        </p>
    </div>
</div>
  • div
    <div id="post_list"></div>

    The area where the post list is displayed.

  • div
    <div v-for="post in output.post_list"></div>

    Loop for displaying posts

Response Result

{
  "post_list": [
    {
      "post_key": "E477FEEB837326JEUDYFC505D20C022",
      "parent_post_key": "E477FEEB837326JEUDYFC505D20C022",
      "board_key": "E477FEEBEE4D444D208AFC505D20C022",
      "board_seq": "301",
      "board_name": "Community",
      "subject": "post subject",
      "depth": 2,
      "member_key": "E477FEEBEE4DB8BD208AFC505D20C022",
      "member_seq": "3",
      "nickname": "John",
      "avatar_url": "/_images/face_icons_circle/face_icons-circle-01.svg",
      "email": "poster@email.com",
      "cell_phone": "01000001111",
      "reg_name": "John",
      "status": "published",
      "notice_flg": "N",
      "comment_flg": "Y",
      "create_date": "2025-05-20 02:53:34",
      "create_date_type_mdhi": "05-20 02:53",
      "modify_date": "2025-05-30 02:53:34",
      "read_count": 500,
      "read_per_day_rate": "7.40",
      "like_cnt": "3",
      "child_post_count": "0",
      "content": "<p>This is the post content.</p>",
      "content_without_html": "This is the post content.",
      "content_summary": "This is the post content.",
      "files": "/post/2025/05/sample.jpg",
      "files_url": "https://api.hdevplus.com/_upload/post/2025/05/sample.jpg",
      "tags": [
        {"post_seq": "12", "tag": "#notice"}
      ],
      "comment_list": [
        {"comment_key": "A1B2C3D4E5F6837326JEUDYFC505D20C", "comment": "Comment content", "name": "Jane", "create_date": "2025-05-21 10:00:00"}
      ],
      "comment_cnt": "1"
    }
  ],
  "pagination": {
    "page": 1,
    "total_result_num": 42,
    "total_page_num": 5,
    "reault_per_page": 10,
    "block_num": 5,
    "prev_page": 1,
    "next_page": 2,
    "prev_page_link": "/community?page=1",
    "next_page_link": "/community?page=2",
    "paging": {
      "first": {"number": 1, "link": "/community?page=1"},
      "end": {"number": 5, "link": "/community?page=5"},
      "prev": {"number": 1, "link": "/community?page=1"},
      "next": {"number": 5, "link": "/community?page=5"},
      "page": [
        {"number": 1, "link": "/community?page=1"},
        {"number": 2, "link": "/community?page=2"}
      ]
    }
  },
  "search_keyword": "",
  "total_post_count": 42,
  "board_list": [
    {"seq": "301", "board_name": "Community"}
  ],
  "board": {"seq": ["301"]},
  "member_like": []
}
KeyDescription
post_listArray of posts
post_list[n].post_keyUnique post key
post_list[n].parent_post_keyParent (original) post key - equals its own key when not a reply
post_list[n].board_keyUnique board key
post_list[n].board_seqBoard sequence
post_list[n].board_nameBoard name
post_list[n].subjectPost title
post_list[n].depthPost indentation level
post_list[n].member_keyAuthor member key (only if the author is a member)
post_list[n].member_seqAuthor member sequence
post_list[n].nicknameAuthor nickname
post_list[n].avatar_urlAuthor avatar image URL
post_list[n].emailAuthor email
post_list[n].cell_phoneAuthor mobile phone number
post_list[n].reg_nameAuthor name
post_list[n].statusPost status (published)
post_list[n].notice_flgNotice flag (Y/N)
post_list[n].comment_flgWhether comments are allowed (Y/N)
post_list[n].create_dateCreation date
post_list[n].create_date_type_mdhiCreated date formatted as MM-DD HH:mm
post_list[n].modify_dateModification date
post_list[n].read_countPost view count
post_list[n].read_per_day_rateDaily view rate - read count divided by days since posting
post_list[n].like_cntLike count
post_list[n].child_post_countNumber of replies (child posts)
post_list[n].contentPost body (HTML)
post_list[n].content_without_htmlBody with HTML tags stripped (only a tags kept)
post_list[n].content_summaryBody summary truncated to 255 characters after stripping tags
post_list[n].filesAttached file paths (comma-separated string, null when none)
post_list[n].files_urlAccessible URLs of attached files (comma-separated string)
post_list[n].tagsPost tag array - each element has post_seq and tag fields
post_list[n].comment_listComment list per post (up to 5) - same fields as the comment list response
post_list[n].comment_cntTotal comment count of the post
paginationPagination info - page, total_result_num, total_page_num, prev/next links and paging (first/end/prev/next/per-page links)
search_keywordSearch keyword used in the request
total_post_countTotal post count of the board
board_listBoard list
boardRequested board sequence info
member_likePosts liked by the signed-in member when requested with get_post_like_flg=Y

Example

Micky2025-10-10 11:11:11

Post Subject Here

Post Content Here

<div id="post_list" data-load-type="vue-pagination" class="row">
<div class="col-12 my-3" vv-for="post in output.post_list">
  <div class="card h-100">
    <img />
    <div class="card-body">
      <div class="d-flex justify-content-between align-items-center">
        <small>{{post.reg_name}}</small><small>{{post.create_date}}</small>
      </div>
      <hr/>
      <h5 class="card-title">{{ post.subject }}</h5>
      <p class="card-text">
        {{ post.content }}
      </p>
    </div>
  </div>
</div>
</div>
<div id="post_list" data-load-type="page-link" class="row">
    <?php foreach($output['post_list'] as $intKey=>$arrPost){ ?>
        <div class="col-12 my-3">
            <div class="card h-100">
                <img src="<?=$arrPost['files'];?>"/>
                <div class="card-body">
                    <div class="d-flex justify-content-between align-items-center">
                        <small><?=$arrPost['reg_name'];?></small><small><?=$arrPost['create_date'];?></small>
                    </div>
                    <hr/>
                    <h5 class="card-title"><?=$arrPost['subject'];?></h5>
                    <p class="card-text">
                        <?=$arrPost['content'];?>
                    </p>
                </div>
            </div>
        </div>
    <? } ?>
</div>