Postingan lainnya
[ASK & SHARE] penamaan function Controller ketika membuat CRUD
[ASK & SHARE] penamaan function Controller ketika membuat CRUD:
Dulu, ketika saya membuat sebuah controller untuk melakukan proses CRUD pada CodeIgniter, saya menggunakan opsi A. Tetapi, sekarang saya mulai beralih kepada opsi B. Karena prosesnya terpisah-pisah seperti 1 fungsi mempunyai 1 tugas.
A. 1. create -> untuk menampilkan form tambah data dan sekaligus memproses penyimpanan data. 2. update -> untuk menampilkan form ubah data dan sekalgus memproses pengubahan data. 3. delete -> untuk melakukan penghapusan data
B. 1. create -> untuk menampilkan form tambah data 2. store -> untuk melakukan proses penyimpanan data 3. edit -> untuk menampilkan form ubah data 4. update -> untuk melakukan proses pengubahan data 5. delete -> untuk melakukan penghapusan data
Saya mendapat ide dari opsi B ketika latihan membuat aplikasi sederhana menggunakan Laravel (Buku Seminggu belajar Laravel). Di dalam buku tersebut, penulis menjelaskan bahwa penerapan opsi B ini merupakan salah satu hal yang baik ketika ingin menerapkan Restful atau sesuatu yang berkaitan dengan API (mohon maaf saya lupa di halaman berapa). Bagaimana pendapat teman-teman dengan opsi B?
2 Jawaban:
Jawaban Terpilih
gan, kalau RESTful. sy pribadi, dipisahkan antara controller utk render halaman sama controller API. karena dua itu beda gan. umpamain kalau yg ngakses API bukan web, tapi mobile app. si API butuh otentifikasi gan, ga bagus kalau sembarang kebuka, minimal pakai OAuth otentifikasinya kalau pembagian API standard restful dah jelas, kynya ga kan jauh bedanya setiap programmer
GET -> read GET -> read->detail (kadang ga butuh juga) POST -> create PUT -> update DELETE -> delete
tapi banyak juga yg ga ngikutin standard RESTful (termasuk saya), alias CRUD-nya dimap ke GET dan POST saja. Cuman tetep gan, umumnya controller bagian API ya isinya API aja ga dicampur sama render halaman web, karena beda memang fungsinya. Susunan saya pribadi (maaf kalau agak beda sy pakainya Codeigniter);
1. SiteController -> isinya utk render semua halaman public web 2. MemberController -> isinya utk render semua halaman web yg hanya diakses Member terdaftar 3. AdminController -> isinya utk render semua halaman administrator panel/dasbor 4. Sy bikin folder API -> isinya ada banyak controller API, yg umumnya berisi operasi CRUD 5. model dapat digunakan baik oleh Controller render halaman maupun API
dengan susunan begini kita bisa lebih mudah menempatkan otoritas dan otentifikasi per controller. Karena yg API terdiri dari banyak controller, maka fungsi-fungsi otoritas dan otentifikasi di inherit dari modul utama. Jadi tujuan utk reusable agak lebih mudah kalau struktur begini dan masih banyak struktur lain yg lebih OK, tergantung selera aja
tips: kalau agan bikin-nya website, utk operasi READ jgn pakai API-AJAX (Web Service), tapi di render biasa aja datanya jadi HTML pakai PHP. nanti ga kebaca sama google konten-nya. CREATE, UPDATE, DELETE aja yg lewat API-AJAX
Jadi, makin terbuka pikiran saya. Terima kasih mas sudah berbagi tips dan ilmunya.