- Published on
Dasar WordPress REST API – Custom Routes dan Endpoints
- Authors
-
-
- Name
- apradipta10
-
Introduction
Dalam development WordPress, REST API menawarkan fleksibilitas dan kekuatan yang luar biasa. Salah satu fitur yang paling berguna adalah kemampuan untuk membuat custom routes dan endpoints. Artikel ini akan membahas cara membuat custom routes dan endpoints di WordPress REST API, memberikan gambaran lengkap dari dasar hingga penerapannya dalam project.
Handbook: https://developer.wordpress.org/rest-api/
Sebelum mulai, Kalian bisa download template yang sudah saya buat untuk bahan belajar atau implementasi. Theme ini dibuat menggunakan Tailwind dan Daisy UI.
Repo: https://github.com/apradipta10/gagapress-daisy
Apa itu REST API
REST API (Representational State Transfer Application Programming Interface) adalah standar arsitektur yang memungkinkan interaksi dengan data melalui protokol HTTP. Di WordPress, REST API digunakan untuk mengakses dan memanipulasi berbagai jenis data seperti pos, halaman, media, dan lain-lain. Custom routes dan endpoints memungkinkan developer untuk memperluas fungsionalitas ini sesuai kebutuhan spesifik.
Keuntungan
Membuat custom routes dan endpoints di WordPress REST API menawarkan banyak keuntungan:
- Fleksibilitas: Dapat disesuaikan sesuai kebutuhan aplikasi.
- Integrasi Mudah: Memungkinkan integrasi dengan aplikasi pihak ketiga atau mobile apps.
- Keamanan: Mendukung berbagai metode autentikasi.
- Efisiensi: Memudahkan pengelolaan data tanpa harus masuk ke dashboard WordPress.
REST API vs Admin Ajax
REST API dan Admin Ajax adalah dua metode berbeda untuk mengakses dan memanipulasi data di WordPress:
- REST API: Lebih fleksibel, dapat diakses dari mana saja, dan mendukung berbagai metode HTTP seperti GET, POST, PUT, dan DELETE.
- Admin Ajax: Biasanya digunakan untuk task yang sederhana di dalam dashboard WordPress, mengandalkan
admin-ajax.php
untuk menangani permintaan.
Artikel lainnya: Best Practice Menggunakan admin-ajax.php di WordPress
Penjelasan atau Tutorial
Berikut adalah langkah-langkah untuk membuat custom routes dan endpoints di WordPress REST API:
1. Buat Fungsi Callback: Fungsi ini akan mengembalikan data yang diinginkan ketika endpoint diakses.
function get_custom_products() {
$products = array(
array('id' => 1, 'name' => 'Produk 1', 'price' => 100000),
array('id' => 2, 'name' => 'Produk 2', 'price' => 200000),
);
return rest_ensure_response($products);
}
2. Daftarkan Endpoint di REST API: Tambahkan kode berikut di functions.php
atau plugin custom.
function register_custom_endpoints() {
register_rest_route('custom/v1', '/products', array(
'methods' => 'GET',
'callback' => 'get_custom_products',
));
}
add_action('rest_api_init', 'register_custom_endpoints');
3. Mengakses Endpoint Kustom: Akses endpoint dengan mengirim permintaan GET ke URL:
https://example.com/wp-json/custom/v1/products
Untuk endpoint dengan parameter:
1. Fungsi Callback dengan Parameter:
function get_product_by_id($request) {
$product_id = $request->get_param('id');
$products = array(
1 => array('id' => 1, 'name' => 'Produk 1', 'price' => 100000),
2 => array('id' => 2, 'name' => 'Produk 2', 'price' => 200000),
);
if (isset($products[$product_id])) {
return rest_ensure_response($products[$product_id]);
} else {
return new WP_Error('no_product', 'Product not found', array('status' => 404));
}
}
2. Daftarkan Endpoint dengan Parameter:
function register_custom_endpoints() {
register_rest_route('custom/v1', '/product', array(
'methods' => 'GET',
'callback' => 'get_product_by_id',
'args' => array(
'id' => array(
'required' => true,
'validate_callback' => function($param) {
return is_numeric($param);
}
),
),
));
}
add_action('rest_api_init', 'register_custom_endpoints');
3. Mengakses Endpoint dengan Parameter: Akses endpoint dengan mengirim permintaan GET ke URL:
https://example.com/wp-json/custom/v1/product?id=1
Untuk tutorial lengkap serta penjelasannya bisa cek di video Youtube berikut
Kesimpulan
Membuat custom routes dan endpoints di WordPress REST API memungkinkan developer untuk memperluas dan menyesuaikan fungsionalitas situs sesuai kebutuhan spesifik. Dengan langkah-langkah sederhana yang telah dijelaskan, developer dapat mengintegrasikan fitur-fitur baru dengan mudah dan efisien, meningkatkan fleksibilitas dan kemampuan situs WordPress.