Published on

Dasar WordPress REST API – Custom Routes dan Endpoints

Authors

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.