Panduan komprehensif ini menjelaskan langkah-langkah praktis membangun RESTful API pada Yii2 Advanced Template. Anda akan mempelajari konfigurasi endpoint, pembuatan controller, hingga metode pengujian API untuk mengekspos data. Tutorial ini dirancang untuk developer yang ingin mengimplementasikan arsitektur REST yang modern dan scalable.
Application Programming Interface (API) adalah antarmuka perangkat lunak yang memfasilitasi integrasi dan pertukaran data antar aplikasi. RESTful API merupakan implementasi API yang mengikuti prinsip arsitektur REST (Representational State Transfer). Arsitektur ini menggunakan protokol HTTP standar untuk komunikasi, sehingga menjadikannya solusi yang performan, skalabel, dan mudah dikembangkan.
Membangun RESTful API di Yii2 dapat dilakukan dengan efisien. Framework ini menyediakan fondasi MVC yang kuat dan dukungan bawaan untuk pengembangan REST. Artikel ini akan memandu Anda membuat endpoint API yang terpisah dari logika frontend dan backend biasa.
Kita akan menggunakan studi kasus mengekspos data dari tabel user. Asumsi dasar adalah Anda telah berhasil menginstal Yii2 Advanced Template. Jika belum, Anda dapat merujuk pada dokumentasi resmi Yii Framework untuk panduan instalasi.
Langkah-Langkah Implementasi RESTful API di Yii2
Proses implementasi terdiri dari tiga tahap utama: persiapan endpoint, konfigurasi aplikasi, dan pengujian. Mari kita bahas masing-masing tahap secara detail.
1. Membuat Struktur Direktori API
Tahap pertama adalah membuat lingkungan kerja khusus untuk API. Pada Yii2 Advanced Template, kita akan membuat direktori aplikasi baru bernama api.
- Salin seluruh isi direktori
backendke lokasi yang sama, lalu ubah nama salinan tersebut menjadiapi. - Buka file
common/config/bootstrap.php. Tambahkan alias untuk direktoriapidengan menambahkan baris berikut:Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); - Pada direktori
environments, salin folderbackenddi dalamdevdanprod. Ubah nama masing-masing salinan menjadiapi. - Edit file
environments/index.php. Tambahkan konfigurasi path untuk direktoriapipada bagiansetWritabledansetCookieValidationKey. - Gunakan fitur “Find and Replace” di editor kode Anda. Ganti semua kemunculan string
backendmenjadiapidi dalam seluruh file pada folderapiyang baru dibuat.

2. Konfigurasi Controller dan Aturan URL
Setelah struktur siap, langkah berikutnya adalah mengonfigurasi controller yang akan menangani request API.
- Buat Controller API. Buat file baru bernama
UserController.phpdi dalam direktoriapi/controllers. Isi dengan kode berikut:
Controller ini mewarisi<?php namespace api\controllers; use yii\rest\ActiveController; class UserController extends ActiveController { public $modelClass = 'common\models\User'; }ActiveControlleryang menyediakan endpoint RESTful lengkap (GET, POST, PUT, DELETE) untuk model User secara otomatis. - Konfigurasi URL Manager. Buka file
api/config/main.php. Tambahkan atau ubah komponenrequestdanurlManagerdalam arraycomponents:
Konfigurasi ini mengaktifkan parsing input JSON dan menentukan aturan routing untuk controller User.'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ] ], 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user'], ], ], ], - Konfigurasi Server Web (Opsional). Untuk server Apache, buat file
.htaccessdi dalam folderapi/webdengan konten berikut:
File ini mengarahkan semua request ke fileRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.phpindex.phputama Yii2.
3. Melakukan Pengujian Endpoint API
Setelah konfigurasi selesai, Anda dapat menguji endpoint API yang telah dibuat. Berikut beberapa metode pengujian yang umum digunakan.
- Menggunakan Postman. Unduh dan instal Postman. Buat request baru dengan metode GET dan URL:
http://localhost/[nama-project-anda]/api/web/users. Jika berhasil, Anda akan mendapat respons JSON berisi data user. - Menggunakan cURL. Jalankan perintah berikut di terminal atau command prompt:
curl -H "Accept: application/json" "http://localhost/[nama-project-anda]/api/web/users" - Akses Melalui Browser. Buka URL endpoint di browser. Namun, metode ini biasanya hanya cocok untuk testing request GET sederhana.


Dengan menyelesaikan semua langkah di atas, Anda telah berhasil membangun RESTful API dasar di Yii2. Untuk pengembangan lebih lanjut, pertimbangkan untuk menambahkan mekanisme autentikasi (seperti JWT), authorization, rate limiting, dan dokumentasi API yang baik. Selalu konsultasikan dokumentasi resmi Yii2 untuk memastikan implementasi Anda mengikuti praktik terbaik terkini.
