[Yii2] Membuat RESTful API

13 September 2021

Home » Blog » Teknologi » [Yii2] Membuat RESTful API

API adalah sebuah software yang mengintegrasikan antara yang kita buat dengan yang lain. Tujuan pembuatannya yaitu untuk saling berbagi data antar 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 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:  Cara Mengaktifkan Drag and Drop File di Taskbar Windows 11

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 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:  KAIZALA GPS
yii2 api 01
  1. Edit file “common/config/bootstrap.php” dan tambahkan alias untuk “api”.
  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

  1. Konfigurasi URL Rules dan JSON Input
TOP TUTORIALS:  Cara Menonaktifkan dan Reset Superfetch di Windows untuk Meningkatkan Performa

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/-advanced/api/web/users”
yii2 api 04
  1. Atau dengan perintah CURL
yii2 api 05
  1. Anda juga dapat mengaksesnya melalui dengan URL “”http://localhost/-advanced/api/web/users”
yii2 api 06

0 Komentar