게시물 보기
게시물 보기 페이지를 구현하기 위해 필요한 요청 데이터 식별자와 응답 결과 구조를 안내합니다.
데이타 식별자
{
"dataID": "GET_POST",
"post_key": 1,
"page_link_url": "/post/123/post-subject",
"page_link_hash": "HASH",
"page": 1,
"list_per_page": 20,
"block_per_page": 5
}| Key | Description |
|---|---|
| post_key | 게시물 고유 키 |
| page_link_url | 코멘트 목록 페이징의 링크 URL |
| page_link_hash | 페이징의 이동 링크 Hash(Hash 페이지 내에서 Hash링크로 이동해야 하는경우 필요) |
| page | 코멘트 페이지 번호 |
| list_per_page | 페이지당 출력될 코멘트 개수 |
| block_per_page | 페이지 내 페이징 블럭에 표시될 페이지 링크 수 |
HTML
<div id="post">
<div><small class="ms-1 fw-bold">Board name</small></div>
<h1 class="fs-3 mt-4 mb-4">The post title is displayed here.</h1>
<div>
24-07-22 22:23 by Author
</div>
<p>
H:Dev+ is based on the MVC (Model-View-Controller) model,
providing the Model and Controller on the Back-End so you can
focus on Front-End development. Communication between the
Front-End and Back-End uses the RESTful approach. To do this, .....
</p>
<div>
<span>Tag1</span>
<span>Tag2</span>
<span>Tag3</span>
</div>
<div>
<a href="/post/modify?post_key=AD570BDF1...">EDIT</a>
<button type="button" class="h-btn-delete" data-post-key="AD570BDF1...">DELETE</button>
</div>
</div>- div
<div id="post"></div>게시글이 표시될 영역으로 id는 post로 필수 설정해야합니다.
- a
<a href="/post/modify?post_key=AD570BDF1..."></a>게시글 수정 버튼으로 수정페이지 URL에 Response Result의 post[0].post_key 값을 post_key파라미터에 필수로 지정해야 합니다.
- button
<button type="button" class="h-btn-delete" data-post-key="AD570BDF1..."></button>게시글 삭제 버튼으로 data-post-key에 Response Result의 post[0].post_key 값이 필수로 지정되어야 하며 class 선택자로 h-btn-delete가 필수로 포함 되어야합니다.
Response Result
{
"post": [
{
"avatar_url": "/avatar/url",
"board_name": "free board",
"board_seq": 100,
"contents": [
{"content":"post content","content_html_enc": "encoded html content"}
],
"create_date": "2025-05-30 02:53:34",
"create_date_type_mdhi": "05-30 02:53",
"member_seq": 300,
"modify_date": "2025-05-30 02:53:34",
"nickname": "winter",
"post_key": "E477FEEB837326JEUDYFC505D20C022",
"read_count": 928,
"reg_name": "micky",
"seq": 34,
"subject": "Post Subject",
"tags": [
"tag1",
"tag1",
"tag2",
"tag3"
],
"related_post": [
{
"post_key": "E477FEEB837326JEUDYFC505D20C022",
"subject": "Related Post Subject",
"reg_name": "Micky",
"avatar_url": "/avatar/url",
"create_date": "2025-05-20 02:53:34"
}
]
}
]
}| Key | Description |
|---|---|
| post[0].avatar_url | 아바타 URL |
| post[0].board_name | 게시판 명 |
| post[0].board_seq | 게시판 시퀀스 |
| post[0].contents | 게시물 내용 배열 |
| post[0].contents[0].content | 게시물 내용 |
| post[0].contents[0].content_html_enc | HTML 인코딩이 적용된 게시물 내용 |
| post[0].create_date | 등록일시 Y-m-d H:i:s 형식 |
| post[0].create_date_type_mdhi | 등록일시 y-m-d h:i 형식 |
| post[0].member_seq | 게시자 회원 시퀀스 |
| post[0].modify_date | 수정일시 Y-m-d H:i:s 형식 |
| post[0].nickname | 게시자 닉네임(현재 시점) |
| post[0].post_key | 게시물 고유키 |
| post[0].read_count | 게시물 조회수 |
| post[0].reg_name | 게시자 닉네임(게시물 등록시점) |
| post[0].seq | 게시물 시퀀스 |
| post[0].subject | 제목 |
| post[0].tags | 태그 Array(['tag'=>'태그1'],['tag'=>'태그2']) |
| post[0].related_post | 관련 글 목록 배열 |
| post[0].related_post[0].subject | 관련글 제목 |
| post[0].related_post[0].reg_name | 관련글 등록인 이름 |
| post[0].related_post[0].nickname | 관련글 등록인 닉네임 |
| post[0].related_post[0].avatar_url | 관련글 아바타 URL |
| post[0].related_post[0].create_date | 관련글 등록일 |
| post[0].related_post[0].post_key | 관련글 고유키 |
Example
Board name
The post title is displayed here.
24-07-22 22:23 by
Author
H:Dev+ is based on the MVC (Model-View-Controller) model, providing the Model and Controller on the Back-End so you can focus on Front-End development. Communication between the Front-End and Back-End uses the RESTful approach. To do this, it sends a POST request through the Connector and returns the result as a Response in JSON format. Instead of a URL, it uses a dataID to specify a unique resource identifier, and a secureKey is required for security.
Tag1 Tag2 Tag3
<div id="post" :data-post-key="output.post[0].post_key" class="me-3">
<div class="py-3">
<div class="row">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center py-3 border-bottom">
<div>
<small class="ms-1 fw-bold">{{ output.post[0].board_name }}</small>
</div>
<div class="d-flex justify-content-between align-items-center" v-if="output.user.auth_flg && output.post[0].member_seq == output.user.seq">
<a :href="'./modify.html?post_key='+output.post[0].post_key" class="mx-1 btn btn-dark d-flex justify-content-between align-items-center lh-1"><small class="smaller d-none text-white d-md-block">Edit</small></a>
<a href="#" data-return-url="./list.html" :data-post-key="output.post[0].post_key" class="h-btn-delete mx-1 btn btn-dark d-flex justify-content-between text-white align-items-center lh-1"><small class="smaller d-none d-md-block">Delete</small></a>
</div>
</div>
<h1 class="fs-3 mt-4 mb-4">{{ output.post[0].subject }}</h1>
</div>
</div>
<div class="row">
<div class="col-12 text-start">
<div class="d-flex justify-content-start align-items-center">
{{ output.post[0].create_date_type_mdhi }} by
<div class="mx-2">
<img v-if="output.post[0].avatar_url" :src="output.post[0].avatar_url" style="max-width:1.5rem;"/>
<i v-else class="fas fa-user-circle"></i>
</div>
{{ output.post[0].reg_name }}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div><p v-html="output.post[0].contents[0].content"/></div>
<div class="d-flex align-items-center justify-content-start my-4" v-if="output.post[0].tags && output.post[0].tags.length>0">
<span v-for="tags in output.post[0].tags" class="badge bg-white border me-1 fw-normal text-hbnc-secondary me-2 px-3 py-2">
{{ tags.tag }}
</span>
</div>
</div>
</div>
</div><div id="post" data-post-key="<?= $output['post'][0]['post_key']; ?>" class="me-3">
<div class="py-3">
<div class="row">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center py-3 border-bottom">
<div>
<small class="ms-1 fw-bold"><?= $output['post'][0]['board_name']; ?></small>
</div>
<? if ($output['user']['auth_flg'] && $output['post'][0]['member_seq'] == $output['seq']) { ?>
<div class="d-flex justify-content-between align-items-center" vv-if="output.user.auth_flg && output.post[0].member_seq == output.user.seq">
<a href="'./modify.html?post_key=<?= $output['post'][0]['post_key']; ?>" class="mx-1 btn btn-dark d-flex justify-content-between align-items-center lh-1"><small class="smaller d-none text-white d-md-block">Edit</small></a>
<a href="#" data-return-url="./list.html" data-post-key="<?= $output['post'][0]['post_key']; ?>" class="h-btn-delete mx-1 btn btn-dark d-flex justify-content-between text-white align-items-center lh-1"><small class="smaller d-none d-md-block">Delete</small></a>
</div>
<? } ?>
</div>
<h1 class="fs-3 mt-4 mb-4"><?= $output['post'][0]['subject']; ?></h1>
</div>
</div>
<div class="row">
<div class="col-12 text-start">
<div class="d-flex justify-content-start align-items-center">
<?= $output['post'][0]['create_date_type_mdhi']; ?> by
<div class="mx-2">
<? if ($output['post'][0]['avatar_url']) { ?>
<img vv-if="output.post[0].avatar_url" src="<?= $output['post'][0]['avatar_url']; ?>" style="max-width:1.5rem;"/>
<? } else { ?>
<i class="fas fa-user-circle"></i>
<? } ?>
</div>
<?= $output['post'][0]['reg_name']; ?>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div><p><?= $output['post'][0]['content']; ?></p></div>
<? if (is_array($output['post'][0]['tags']) && count($output['post'][0]['tags']) > 0) { ?>
<div class="d-flex align-items-center justify-content-start my-4">
<? foreach ($output['post'][0]['tags'] as $arrTags) { ?>
<span vv-for="tags in output.post[0].tags" class="badge bg-white border me-1 fw-normal text-hbnc-secondary me-2 px-3 py-2">
<?= $arrTags['tag']; ?>
</span>
<? } ?>
</div>
<? } ?>
</div>
</div>
</div>User Discussions
ADD- 등록된 글이 없습니다.