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
3. Kita akan meng-override method
checkAccess(), untuk memeriksa apakah data kontak yang akan diakses adalah milik user yang terautentikasi atau bukan. Jika bukan, maka kita akan lempar error dari
\yii\web\ForbiddenHttpException.
Menambahkan Rules Baru di Config urlManager
Karena kita menggunakan ActiveController yang secara default sudah memiliki action index, view, create, update, delete, dan options maka dengan mudah kita dapat menggunakan
\yii\rest\UrlRule membuat route untuk semua action yang ada pada controller tersebut.
Memodifikasi model Kontak
Melakukan pengujian dengan menggunakan postman
1. Lakukan request GET /kontak
Karena kita menerapkan autentikasi
\yii\filters\auth\HttpBearerAuth untuk KontakController, jadi kita harus menyertakan token yang kita dapat dari endpoint POST /auth/login. JIka tidak, maka kita tidak bisa mengaksesnya.
2. Request Token POST /auth/login dengan username dan password yang valid
3. Sertakan token yang didapat tersebut melalui request header, isi kolom key dengan Authorization dan value dengan Bearer [token/jwt]
4. Coba lakukan request berikut.
- GET /kontak (menampilkan data kontak yang dibuat oleh user terautentikasi)
- POST /kontak dengan mengirim data (nama, no_hp, whatsapp,telegram, line, bbm) (membuat data kontak baru)
- PATCH /kontak/[id] (memperbarui data kontak berdasarkan id yang diberikan)
- DELETE /kontak/[id] (menghapus data kontak berdasarkan id yang diberikan)
- GET /kontak/[id] (melihat data kontak berdasrkan id yang diberikan)
Sampai disini postingan minggu ini, kita lanjut minggu depan..
Terimakasih.
download film indonesia terbaru
ReplyDelete