Dokumentasi REST API WDP Link Post: Endpoint Cek Slug, Cek Domain, dan DNS Probe

REST API WDP Link Post (/wp-json/wdplp/v1/*) menyediakan antarmuka pemrograman aplikasi standar industri bagi developer agensi untuk mengintegrasikan mesin perutean domain dengan aplikasi eksternal, form builder kustom, bot WhatsApp, maupun sistem ERP agensi. Seluruh endpoint dirancang ringan, aman, dan mengembalikan respon berformat JSON terstruktur.


Kebutuhan Integrasi API bagi Agensi Skala Besar

Bagi agensi modern yang mengoperasikan sistem pemesanan kustom di luar WordPress standar (seperti aplikasi mobile Flutter, frontend Next.js, atau automasi n8n / Make.com):

  • Membutuhkan cara instan untuk memvalidasi apakah nama subdomain yang diinginkan calon pengantin masih tersedia.
  • Membutuhkan endpoint aman untuk mendaftarkan custom domain baru dari aplikasi luar.
  • Membutuhkan alat probe otomatis untuk memeriksa status propagasi DNS klien tanpa harus membuka browser secara manual.
Dokumentasi Arsitektur REST API WDP Link Post
Gambar 5: Arsitektur 3 endpoint utama REST API WDP Link Post dan format respon JSON.

1. Endpoint: Cek Ketersediaan Slug Subdomain

Memeriksa apakah sebuah nama subdomain (prefix) masih tersedia atau sudah digunakan oleh postingan lain.

  • Metode HTTP: GET
  • Endpoint URL: /wp-json/wdplp/v1/check-slug
  • Otentikasi: Terbuka untuk Publik (No Auth Required)

Parameter Kueri (Query Parameters):

ParameterTipeWajib?Deskripsi
slugstringYaNama slug yang ingin dicek (contoh: andy-zhea)

Contoh Request (cURL):

BASH
curl -X GET "https://websiteundangan.com/wp-json/wdplp/v1/check-slug?slug=andy-zhea"

Contoh Respon Sukses (HTTP 200 OK):

JSON
{
  "success": true,
  "available": true,
  "slug": "andy-zhea",
  "sanitized_slug": "andy-zhea",
  "preview_url": "https://andy-zhea.websiteundangan.com",
  "message": "Subdomain tersedia untuk digunakan."
}

2. Endpoint: Pemetaan Custom Domain (Tier 3)

Menghubungkan domain pribadi pengantin ke ID postingan undangan tertentu.

  • Metode HTTP: POST
  • Endpoint URL: /wp-json/wdplp/v1/map-domain
  • Otentikasi: Wajib (X-WP-Nonce atau Authorization: Basic/Bearer)

Header Permintaan:

TEXT
Content-Type: application/json
X-WP-Nonce: [token_nonce_wordpress]

Struktur Payload (JSON Body):

JSON
{
  "post_id": 418,
  "custom_domain": "andy-zhea.com",
  "tier": "tier3"
}

Contoh Respon Sukses (HTTP 200 OK):

JSON
{
  "success": true,
  "post_id": 418,
  "mapped_domain": "andy-zhea.com",
  "status": "connected",
  "message": "Custom domain berhasil dihubungkan ke postingan undangan."
}

3. Endpoint: Diagnostik Live DNS Probe

Memeriksa status keterarahan DNS domain secara realtime langsung dari server hosting.

  • Metode HTTP: GET
  • Endpoint URL: /wp-json/wdplp/v1/dns-probe
  • Otentikasi: Terbuka untuk Publik / Pengguna Terdaftar

Parameter Kueri:

TEXT
?domain=andy-zhea.com

Contoh Respon Sukses (HTTP 200 OK):

JSON
{
  "success": true,
  "domain": "andy-zhea.com",
  "dns_matched": true,
  "server_ip": "103.145.22.45",
  "resolved_ip": "103.145.22.45",
  "ssl_active": true,
  "status_code": 200,
  "latency_ms": 42
}

Studi Kasus Operasional: Validasi Form AJAX Andy & Zhea

Pada saat Andy mengetikkan andy-zhea di formulir registrasi agensi:

  1. Script JavaScript frontend mengirimkan permintaan fetch() ke /wp-json/wdplp/v1/check-slug?slug=andy-zhea.
  2. Dalam waktu 85 milidetik, API mengembalikan respon available: true.
  3. Di samping kolom input Andy, muncul ikon centang hijau bertuliskan "Subdomain andy-zhea.websiteundangan.com tersedia!".
  4. Proses registrasi berlanjut dengan mulus tanpa hambatan konflik slug kembar.

Kode Status HTTP yang Digunakan

Kode StatusKeteranganPenyebab
200 OKSuksesPermintaan berhasil diproses dan data valid
400 Bad RequestKesalahan InputFormat slug salah atau parameter wajib kosong
401 UnauthorizedTidak TerotentikasiToken nonce atau API key tidak disertakan
403 ForbiddenHak Akses DitolakPengguna login mencoba memetakan post milik orang lain
409 ConflictBentrok DataSlug atau custom domain sudah digunakan oleh klien lain

Tips & Praktik Terbaik

Terapkan Debounce pada Script Input Frontend: Saat memasang validasi slug realtime pada form pendaftaran, terapkan teknik debounce selama 400 milidetik agar API tidak dibanjiri request pada setiap ketukan keyboard pengguna.
Selalu Lakukan Sanitasi Hostname: Meskipun API WDP Link Post memiliki sanitizer bawaan, pastikan aplikasi eksternal Anda selalu membersihkan karakter protokol (https://) dan trailing slash (/) sebelum mengirimkan nama domain ke endpoint /map-domain.

Pertanyaan yang Sering Diajukan (FAQ)

Di mana prefix URL dasar (base namespace) REST API WDP Link Post? +
Seluruh endpoint REST API WDP Link Post terdaftar di bawah namespace resmi WordPress: https://domainanda.com/wp-json/wdplp/v1/.
Apakah endpoint pengecekan slug (/check-slug) memerlukan otentikasi API key? +
Tidak. Endpoint /check-slug bersifat publik agar dapat dipanggil secara asinkron (AJAX) oleh form pendaftaran frontend, form Elementor, atau checkout WooCommerce tanpa mengekspos token kredensial.
Bagaimana cara mengotentikasi permintaan pada endpoint pemetaan domain (/map-domain)? +
Endpoint /map-domain mewajibkan otentikasi menggunakan WordPress Cookie Nonce (X-WP-Nonce) untuk pengguna login di frontend, atau Application Password / Bearer Token untuk integrasi aplikasi eksternal.
Format respon apa yang dikembalikan oleh REST API WDP Link Post? +
Seluruh respon disajikan dalam format standar application/json dengan struktur data konsisten (memuat status boolean, pesan deskriptif, dan payload data terkait).
Apakah endpoint DNS Probe (/dns-probe) melakukan lookup langsung ke server DNS global? +
Ya. Endpoint ini menjalankan fungsi resolver soket DNS tingkat server (dns_get_record) untuk memverifikasi apakah A Record domain klien sudah mengarah ke IP hosting Anda secara realtime.