[Yii2] Membuat RESTful API

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).

TOP TUTORIALS:  Menggunakan Filter Pada Excel

Berikut ini, kami menggunakan contoh untuk mengilustrasikan bagaimana Anda dapat membangun satu set RESTful API dengan sedikit usaha pengkodean. Yii yang akan kita gunakan adalah Yii2 Advanced Template.

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.

  1. Salin direktori backend dan ubah namanya menjadi “api”.
TOP TUTORIALS:  Cara Membuat Macro Sederhana Pada Excel
yii2 api 01
  1. 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');
  1. Pada direktori “environments/dev”, salin direktori backend dan ubah namanya menjadi “api”. Demikian juga untuk direktori “environments/prod”, sehingga akan tampak seperti gambar berikut
yii2 api 02
  1. 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',
        ],
    ],
];
  1. Pada direktori api yang kita buat tadi, ganti semua kata “backend” menjadi “api”
yii2 api 03

B. Konfigurasi Yii

  1. 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';
}
  1. Konfigurasi URL Rules dan JSON Input
TOP TUTORIALS:  Cara Mudah Menghapus OneDrive di Windows 11

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'],
            ],
        ]
		............
    ],
    ............
];
  1. 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]

C. Pengujian API

  1. Download Postman, kemudian buka Postman. Buat request ke URL “http://localhost/yii2-advanced/api/web/users”
yii2 api 04
  1. Atau dengan perintah CURL
yii2 api 05
  1. Anda juga dapat mengaksesnya melalui browser dengan URL “”http://localhost/yii2-advanced/api/web/users”
yii2 api 06