Posts

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 Kontak

Image
Jika minggu lalu kita sudah Membuat RESTful endpoint untuk Lokasi dan Kategori , minggu ini kita akan membuat endpoint untuk kontak. Membuat Base Controller Langsung saja, kita mulai dengan  membuat base controller baru bernama ActiveController turunan dari \yii\rest\ActiveController . Base controller ini akan kita gunakan di controller kontak dan iklan, berbeda dengan base controller yang kita buat minggu lalu, base controller ini secara default memiliki beberapa action yang bisa kita gunakan untuk melakukan operasi CRUD melalui model ActiveRecord. Seperti biasa, base controller ini  akan menerapkan CORS filter ditambah dengan authenticator menggunakan \yii\filters\auth\HttpBearerAuth . Jadi, silahkan buat file baru bernama ActiveController.php di folder controllers. Membuat Kontak Controller Secara sederhana spesifikasi dari KontakController adalah sebagai berikut. 1. Turunan dari base controller ActiveController yang telah kita buat 2. Kita akan meng-override metho

Membuat RESTful endpoint untuk Lokasi dan Kategori

Image
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 ,

Membuat Sistem Signup dan Login untuk BarBek RESTful Web APIs

Image
Minggu yang lalu kita sudah Memodifikasi Model User Yii2 Basic Template Untuk Kebutuhan Autentikasi Pengguna Menggunakan JWT (JSON Web Token) , dan untuk minggu ini kita akan coba menggunakan model tersebut untuk registrasi user dan login user. Sebagai gambaran dalam tutorial ini kita akan membuat 2 file baru diantaranya: 1. controllers/AuthController.php 2. models/SignupForm.php Tidak lupa, kita juga akan memodifikasi file model/LoginForm.phpB ,  controllers/SiteController.php dan configurasi aplikasi  di config/web.php . Selain itu, kita akan mulai menjalankan aplikasi kita menggunakan PHP built-in web server dan menggunakan postman   untuk mencoba melakukan request secara langsung ke endpoint url  yang kita buat. Sebelum kita membuat dan memodifikasi file-file tersebut, berikut ini adalah diagram alur proses registrasi  (signup) dan login user. Sekarang, kita akan coba implementasikan alur tersebut. 1. Membuat  SignupForm.php  Dalam file tersebut kita membuat

Memodifikasi Model User Yii2 Basic Template Untuk Kebutuhan Autentikasi Pengguna Menggunakan JWT (JSON Web Token)

Minggu lalu kita sudah mencoba Membuat Model Menggunakan Fitur Gii Console Command di Yii2 , ada satu model yang tidak kita generate yaitu model user, saat menginstal Yii2 basic template model user secara otomatis dibuat. Jadi, tugasnya adalah memodifikasi model user agar sesuai dengan kebutuhan aplikasi BarBek. Berikut ini adalah model user bawaan dari basic template pada Yii2: Langsung saja, kita akan memodifikasi model tersebut dimulai dari: 1.  Mengubah parent class dari \yii\base\Object  menjadi \yii\db\ActiveRecord . Hal ini perlu kita lakukan karena kita akan menghubungkan model user ini dengan tabel user pada database barbek . 2. Karena tabel  user  tidak menggunakan prefix tbl_ , jadi kita harus meng-override method tableName()   dari class  \yii\db\ActiveRecord . Sehingga, nilai balikkan (return value) dari method tersebut adalah nama tabel (string)  user . 3. Menambahkan  \yii\behaviors\TimestampBehavior  pada method behaviors()   untuk mencatat waktu pembuatan dan pem

Membuat Model Menggunakan Fitur Gii Console Command di Yii2

Image
Melanjutkan seri tutorial "Membangun Aplikasi Jual Beli Barang Bekas Online Menggunakan Yii2 dan Riot.JS". Dalam postingan sebelumnya kita melakukan Implementasi Rancangan Database menggunakan fitur Database Migration di Yii2 , ada tiga tabel lagi yang belum kita buat database migration-nya yaitu tabel kategori, subkategori, dan iklan. Dalam postingan kali ini, kita akan coba untuk melanjutkannya dan men-genarate model menggunakan fitur gii console command di Yii2. Langsung saja, kita mulai dengan melanjutkan membuat database migration. Langkah-langkah berikut harus dilakukan sesuai urutannya. 5. kategori Untuk men-generate file database migration untuk membuat tabel kategori silahkan ketikkan perintah berikut ini di terminal/cmd/powershell. Sama halnya dengan tabel provinsi kita akan melakukan transaksi insert data kategori dari sebuah file csv, jadi kita harus memodifikasi kode hasil generate Yii2 menjadi seperti dibawah ini: Note: File csv untuk kategori a

Implementasi Rancangan Database menggunakan fitur Database Migration di Yii2

Image
Masih dalam seri tutoriai " Membuat Web Jual Beli Barang Bekas Online (BarBek) dengan Yii2  dan Riot.Js ". Berdasarkan penjelasan dari postingan pembuka minggu lalu (jika belum membacanya silahkan baca terlebih dahulu: Membangun Aplikasi Stateless (Restful Web Service) dengan Yii2 dan Single Page (Frontend) dengan Riot.JS  ), seri tutorial ini akan dibagi kedalam dua bagian besar yaitu: A. Membuat Restful Web APIs dengan YII2. B. Membuat Single Page Application dengan Riot.JS. Postingan kali ini merupakan merupakan posting pertama dari bagian Membuat Restful Web APIs dengan Yii2. Jadi, silahkan persiapkan perlengkapan tempur yang dibutuhkan yaitu: 1. PHP 5.4 atau yang lebih baru 2. MySQL (yang saya gunakan adalah versi 5.7.14 Homebrew) , sebenarnya anda bisa menggunakan database lain jika berminat, karena pada tutorial ini kita akan banyak menggunakan fitur database migration dari Yii2 yang mendukung berbagai macam database (lihat detalinya disini:  http:/