API adalah sebuah software yang mengintegrasikan antara aplikasi yang kita buat dengan aplikasi yang lain. Tujuan pembuatannya yaitu untuk saling berbagi data antar aplikasi yang sudah diintegrasikan tersebut.
RESTful API / REST API merupakan penerapan dari API (Application Programming Interface). Sedangkan REST (Representional State Transfer) adalah sebuah arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dimana metode ini sering diterapkan dalam pengembangan aplikasi. Dengan tujuannya untuk menjadikan sistem memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data.
Membangun REST API di Yii sebenarnya cukup mudah. Anda dapat memanfaatkan kerangka kerja MVC yang ada, tetapi Anda membuat titik akses berbeda yang ingin Anda akses oleh berbagai jenis layanan (bukan pengunjung situs web).
Berikut ini, kami menggunakan contoh untuk mengilustrasikan bagaimana Anda dapat membangun satu set RESTful API dengan sedikit usaha pengkodean.
Asumsikan Anda ingin mengekspos data pengguna melalui RESTful APIs. Tabel user pada contoh ini telah Anda buat ketika pertama kali menginstal Yii. Untuk cara instalasi Yii bisa anda lihat pada Cara Install Yii2 Advanced via Composer.
Langkah-Langkah Membuat RESTful API pada Yii2 Advanced
A. Membuat API Endpoint
Pada Yii2 Advanced template kita mempunyai direktori backend dan frontend. Untuk memisahkan fitur API, kita akan membuat direktori baru bernama “api” sebagai endpoint.
- Salin direktori backend dan ubah namanya menjadi “api”.
- Edit file “common/config/bootstrap.php” dan tambahkan alias untuk “api.
<?php Yii::setAlias('@common', dirname(__DIR__)); Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend'); Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend'); Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
- Pada direktori “environments/dev”, salin direktori backend dan ubah namanya menjadi “api”. Demikian juga untuk direktori “environments/prod”, sehingga akan tampak seperti gambar berikut
- Sesuaikan file “environments/index.php” seperti berikut ini
return [ 'Development' => [ 'path' => 'dev', 'setWritable' => [ .........., 'api/runtime', 'api/web/assets', ], .............. 'setCookieValidationKey' => [ .........., 'api/config/main-local.php', ], ], 'Production' => [ 'path' => 'prod', 'setWritable' => [ .........., 'api/runtime', 'api/web/assets', ], ............. 'setCookieValidationKey' => [ .........., 'api/config/main-local.php', ], ], ];
- Pada direktori api yang kita buat tadi, ganti semua kata “backend” menjadi “api”
B. Konfigurasi Yii
- Membuat Controller
Buat file “UserController” pada direktori “api/controllers” dan salin script berikut ini
<?php namespace apicontrollers; use yiirestActiveController; class UserController extends ActiveController { public $modelClass = 'commonmodelsUser'; }
- Konfigurasi URL Rules dan JSON Input
Ubah file “api/config/main.php” dengan menambahkan JSON request dan URL Rule seperti berikut
return [ ......... 'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yiiwebJsonParser', ] ], ......... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yiirestUrlRule', 'controller' => 'user'], ], ] ............ ], ............ ];
- Buat file “.htaccess” pada direktori “api/web/” dan salin kode berikut
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php RewriteRule ^index.php/ - [L,R=404]
Artikel Menarik Lainnya
C. Pengujian API
- Download Postman, kemudian buka Postman. Buat request ke URL “http://localhost/yii2-advanced/api/web/users”
- Atau dengan perintah CURL
- Anda juga dapat mengaksesnya melalui browser dengan URL “”http://localhost/yii2-advanced/api/web/users”