Masukan
Endpoint publik untuk widget "Apakah halaman ini membantu?" dan cara membaca hasilnya.
Di halaman ini
Endpoint publik β tidak memerlukan autentikasi, karena pengunjung anonim pun perlu dapat memberi masukan.
curl -H "Content-Type: application/json" \
-X POST https://situs.id/wp-json/gitdocs/v1/feedback \
-d '{"post":42,"value":"up"}'| Parameter | Tipe | Keterangan |
|---|---|---|
post |
int | Id halaman dokumentasi yang sudah terbit |
value |
up | down |
Membantu atau tidak |
{ "ok": true }| Lapisan | Aturan |
|---|---|
| Server | Satu suara per alamat IP (di-hash) per halaman, per 24 jam |
| Peramban | Pilihan disimpan di localStorage, tombol dinonaktifkan setelah memilih |
| Sasaran | Hanya halaman doc_page berstatus terbit |
| Pengaturan | Ditolak bila widget masukan dimatikan di Customizer |
Suara berulang dijawab 429 gitdocs_already_voted. Tampilan depan memperlakukan jawaban ini sebagai sukses (pengunjung tetap melihat ucapan terima kasih).
Alamat IP tidak disimpan. Yang dicatat hanyalah hash berisi IP + id halaman + garam WordPress, sebagai penanda sementara berumur satu hari.
Jumlah suara disimpan pada meta halaman:
$up = (int) get_post_meta( $page_id, '_gitdocs_feedback_up', true );
$down = (int) get_post_meta( $page_id, '_gitdocs_feedback_down', true );Angka yang sama tampil di:
- kolom Masukan pada Dokumentasi β Semua Halaman;
- tab Pengaturan di editor, bagian "Riwayat & masukan".
<?php
$pages = get_posts(
array(
'post_type' => 'doc_page',
'post_status' => 'publish',
'posts_per_page' => 10,
'meta_key' => '_gitdocs_feedback_down',
'orderby' => 'meta_value_num',
'order' => 'DESC',
)
);
foreach ( $pages as $page ) {
printf(
"%-40s π %d π %d\n",
$page->post_title,
(int) get_post_meta( $page->ID, '_gitdocs_feedback_up', true ),
(int) get_post_meta( $page->ID, '_gitdocs_feedback_down', true )
);
}Tampilan β Sesuaikan β GitDocs β Tampilkan widget "Apakah halaman ini membantu?". Saat dimatikan, widget tidak dirender dan endpoint menolak permintaan.