[Yii2] Membuat RESTful API

bardimin pic

Ditulis oleh Bardimin

Tanggal 13 September 2021
Home » Blog » Teknologi » [Yii2] Membuat RESTful API

API adalah sebuah yang mengintegrasikan antara yang kita buat dengan yang lain. Tujuan pembuatannya yaitu untuk saling berbagi data antar aplikasi yang sudah diintegrasikan tersebut.

/ REST API merupakan penerapan dari API (Application Programming Interface). Sedangkan REST (Representional State Transfer) adalah sebuah arsitektur metode komunikasi yang menggunakan 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 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”.
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 berikut ini

<?php
namespace apicontrollers;
use yiirestActiveController;

class UserController extends ActiveController
{
    public $modelClass = 'commonmodelsUser';
}
  1. 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'],
            ],
        ]
		............
    ],
    ............
];
  1. Buat file “.” 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

Artikel Terbaru

Teknik Dasar Perawatan Komputer dan Laptop

Teknik Dasar Perawatan Komputer dan Laptop

Anda mungkin tidak menyadarinya, tetapi komputer dan mobil memiliki kesamaan, keduanya membutuhkan perawatan rutin. Jika mobil Anda perlu mengganti oli secara rutin, komputer Anda secara rutin juga harus memperbarui perangkat lunak, menjaga antivirus tetap up to date,...

ChatGPT versi Desktop untuk Windows, Linux dan Mac

ChatGPT versi Desktop untuk Windows, Linux dan Mac

Apakah Anda tahu apa itu ChatGPT? Apakah Anda tahu cara mendapatkan dan menginstal ChatGPT di perangkat Anda? ChatGPT dengan cepat menjadi salah satu penemuan terpenting dalam dunia pemrosesan bahasa alami. Anda dapat menggunakannya untuk menghasilkan tanggapan...

Voltase Pinout Power Supply ATX 24 pin ke Motherboard

Voltase Pinout Power Supply ATX 24 pin ke Motherboard

Power Supply mengubah daya arus bolak-balik (AC) menjadi arus searah (DC) yang dikendalikan tegangan rendah. Beberapa perangkat Power Supply menyertakan pilihan tegangan input manual, sementara yang lain secara otomatis menyesuaikan. Power Supply mengubah tegangan...

Google Chrome – Buka Bookmark ke Tab Baru Secara Default

Google Chrome – Buka Bookmark ke Tab Baru Secara Default

Bookmark adalah pintasan untuk membuka halaman website yang telah anda simpan untuk anda kunjungi lagi nantinya. Pernahkah Anda mengunjungi halaman situs web yang cukup menarik dan anda ingin untuk mengunjunginya lagi nanti. Mengingat alamat halaman website tentu...

Mengenal Folder $WinREAgent dan Cara Menghapusnya di Windows 11

Mengenal Folder $WinREAgent dan Cara Menghapusnya di Windows 11

Setiap proses update dan upgrade Windows akan menghasilkan folder $WinREAgent. Pada proses update dan upgrade Windows akan membuat banyak file dan folder pada saat proses mengunduh dan menginstal pembaharuan tersebut. Lokasi file dan folder yang dibuat secara otomatis...