RESTful Web Services

Latar Belakang Web Services (Programmable Web) Website yang kita buat tentu kita desain agar  manusia dapat dengan mudah dan nyaman untuk mengakses informasi yang ada didalamnya. Namun,  bagaimana jika yang mengakses website kita adalah sebuah program komputer? Sudah menjadi rahasia umum, jika programmer sering menggunakan cara tidak resmi untuk mendapatkan informasi yang ada dalam sebuah website  dengan teknik screen-scraping misalnya. Namun sayang, program komputer tidak se-fleksibel manusia dalam hal menafsirkan data yang ada dalam sebuah website. Maka, muncullah teknologi seperti RSS, XML-RPC, SOAP, RESTful Web Services, dll. Teknologi-teknologi tersebut dibuat untuk membuat website kita lebih mudah dibaca atau ditafsirkan oleh program komputer. Apa Itu RESTful Web Services? RESTful Web Services mengacu pada sebuah cara atau gaya dalam membangun sebuah sistem web services dengan memanfaatkan semua fitur/potensi yang dimiliki oleh teknologi HTTP (Hypertext Transfer Prot

Membuat RESTful endpoint untuk Lokasi dan Kategori

Minggu lalu kita sudah Membuat Sistem Signup dan Login untuk BarBek RESTful Web APIs, dan untuk minggu ini kita akan membuat RESTful endpoint untuk lokasi (menyediakan data provinsi dan kota seluruh Indonesia) dan kategori (kategori dan subkategori). Selain itu, kita akan membuat sebuah base Controller turunan dari \yii\rest\Controller yang nantinya akan selalu kita gunakan saat membuat controller.

Membuat Base Controller

Kita akan membuat sebuah file baru bernama Controller.php didalam folder controllers. Dalam kelas tersebut kita meng-override method behaviours() dan menambahkan CORS filter (\yii\filters\Cors).

Membuat RESTful endpoint untuk lokasi

Ganti nama method  getKotas() pada model Provinsi dengan getKota(), karena kita menggunakan bahasa indonesia dan hasil generate model melalui gii membuat nama method relasi menjadi plural versi bahasa inggris (\yii\helpers\Inflector).

Selanjutnya, kita akan membuat sebuah Controller Baru bernama LokasiController.php, dan kita akan memodifikasi Model Provinsi.php.
Secara sederhana spesifikasi dari LokasiController.php ini adalah:
1. Tidak membutuhkan autentikasi karena pada controller ini kita hanya akan membuat sebuah GET action yang datanya bisa diakses oleh semua user.
2. Membutuhkan CORS filter (\yii\filters\Cors), karena kita akan melakukan request langsung dari browser dengan domain berbeda.
3. Point 1 dan 2 sudah terpenuhi dengan menggunakan base controller yang tadi telah kita buat
4. Memiliki satu action yaitu index, dimana didalam action ini kita akan mengambil data lokasi berupa provinsi dan kota yang ada dalam database barbek melalui model Provinsi dan relasinya dengan model Kota.
5. Override method verbs() untuk menambahkan validasi HTTP method untuk action index.



Selanjutnya, kita akan edit file config/web.php dan menambahkan rules baru untuk menghandle routing action index pada lokasi controller.

Membuat RESTful endpoint untuk kategori





Sekarang kita akan mencoba kedua endpoint tersebut yaitu GET /lokasi dan GET /kategori melalui postman.

1. GET /lokasi

2. GET /kategori



Sampai disini dulu, kita lanjut minggu depan. Yang kurang dimengerti silahkan tanyakan di kanal telegram atau di kolom komentar.

Tugas: Modifikasi AuthController.php dan SiteController.php sehingga menggunakan base controller yang kita buat pada tutorial ini.

Note:
Postingan ini merupakan seri tutorial dari "Membuat Web Jual Beli Barang Bekas Online (BarBek) dengan Yii2  dan Riot.Js", anda harus sudah menyelesaikan tutorial-tutorial sebelumnya untuk mempraktikkan tutorial dalam postingan ini.

Pembuka:
1. Membangun Aplikasi Stateless (Restful Web Service) dengan Yii2 dan Single Page (Frontend) dengan Riot.JS

Bagian Pertama (Yii2):
2. Implementasi Rancangan Database menggunakan fitur Database Migration di Yii2
3. Membuat Model Menggunakan Fitur Gii Console Command di Yii2
4. Memodifikasi Model User Yii2 Basic Template Untuk Kebutuhan Autentikasi Pengguna Menggunakan JWT (JSON Web Token)
5. Membuat Sistem Signup dan Login untuk BarBek RESTful Web APIs
6. Membuat RESTful endpoint untuk Lokasi dan Kategori

Source code : https://github.com/ydatech/barbek-restful-api
Kanal Diskusi Telegram : https://telegram.me/yudalog

Comments



Popular posts from this blog

Membuat RESTful endpoint untuk Kontak

Google News Feed API Alternative