0% menganggap dokumen ini bermanfaat (0 suara)
107 tayangan110 halaman

Modul Praktikum Laravel API Studi Kasus

Diunggah oleh

ddeyazhr
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
107 tayangan110 halaman

Modul Praktikum Laravel API Studi Kasus

Diunggah oleh

ddeyazhr
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 110

Modul Praktikum Pemrograman Web Framework

Membangun Restfull API menggunakan framework Laravel dengan pendekatan studi kasus
DAFTAR ISI

DAFTAR ISI............................................................................................................................... i

BAB I MARI MEMAHAMI KONSEP ..................................................................................... 1

1.1. API dan Penerapannya ................................................................................................ 1

1.2. Cara Kerja API ............................................................................................................ 2

1.3. Request dan Response ................................................................................................. 2

1.4. HTTP Client ................................................................................................................ 3

1.5. JSON (Javascript Object Notation) ............................................................................. 4

BAB II MARI PRAKTEK ......................................................................................................... 7

2.1. Persiapan Tools ........................................................................................................... 7

2.2. Akses API Public Tanpa Otentikasi ............................................................................ 7

2.3. Akses API Public Dengan Otentikasi........................................................................ 14

BAB III MARI MEMBANGUN API ...................................................................................... 23

3.1. Persiapan Tools ......................................................................................................... 23

3.2. Install Laravel Via Composer ................................................................................... 23

3.3. Koneksikan Laravel dengan Database MySQL ........................................................ 27

3.4. Membuat CRUD ....................................................................................................... 34

3.4.1. Create ................................................................................................................. 35

3.4.2. Read ................................................................................................................... 42

3.4.3. Update ................................................................................................................ 49

3.4.4. Delete ................................................................................................................. 52

3.5. Otentikasi dan Otorisasi API dengan JWT ............................................................... 54

3.5.1. Otentikasi Token JWT ....................................................................................... 54

3.5.2. Otorisasi Token JWT ......................................................................................... 60

i
BAB I
KONSEP API

“Orang yang memahami konsep dari suatu ilmu, berarti sudah memahami setengah dari ilmu
tersebut”

1.1. API dan Penerapannya


Sebelum kita berfokus untuk mempraktekkan tutorial membangun restfull API dengan
menggunakan framework Laravel, alangkah baiknya kita memahami terlebih dahulu apa itu
API. Secara sederhana API atau Application Programming Interface adalah sebuah
sarana/alat/cara untuk menghubungkan aplikasi yang satu dengan aplikasi yang lain, baik
platform serupa ataupun berbeda.

Ketika kita membuat suatu aplikasi atau sistem informasi, ada kalanya kita membutuhkan
suatu fitur tambahan, penyedia data, penyimpanan data, ataupun fitur yang sifatnya khusus.
Hal ini dikarenakan ketidakmampuan kita untuk membuat fitur tersebut bisa karena terlalu
rumit, kekurangan sumber daya, dan sebagainya. Maka cara termudah ialah dengan
menggunakan API yang disediakan oleh orang lain, sehingga kita bisa berfokus
mengembangkan fitur-fitur yang lain.

Sebagai contoh suatu waktu kita membangun sebuah aplikasi toko online yang memiliki
fitur payment atau pembayaran. Untuk membuat fitur payment maka kita harus bekerjasama
dengan suatu bank sebagai metode pembayarannya. Ditambah bagaimana jika pengguna toko
online kita ingin agar metode pembayarannya ditambah, bisa menggunakan aplikasi fintech
(seperti OVO, Gopay, dsb) maka itu akan menyulitkan sekali apabila kita harus bekerjasama
dengan masing-masing perusahaan fintech tersebut. Atas permasalahan tersebut maka kita
dapat menggunakan API payment gateway untuk memudahkan kita dalam menambahkan fitur
pembayaran. Adapun API payment gateway yang digunakan yakni seperti Midtrans, dan lain-
lain.

Dalam pengembangan selanjutnya aplikasi toko online kita ingin dikembangkan dengan
lebih ramah pengguna, yakni dengan mengirimkan notifikasi pesan ke aplikasi chatting (seperti
WhatsApp) apabila barang yang kita masukkan ke dalam wishlist (barang favorit) sedang
mengadakan promo. Maka kita dapat menggunakan API dari WhatsApp ataupun yang sejenis
untuk dapat mengirimkan notifikasi pesan promo tersebut. Berikut merupakan salah satu
contoh peranan API dalam pengembangan suatu aplikasi.

1
1.2. Cara Kerja API

Cara kerja API mirip seperti ketika mengakses suatu situs di internet. Pada gambar
diatas terdapat bagan “Aplikasi Kita” yang mana bisa berupa berbagai platform baik web,
mobile app, desktop app, dan sebagainya. Jika dirunutkan maka tahapan nya seperti berikut:

1. “Aplikasi Kita” mengirim permintaan ke “Aplikasi Penyedia API”. Misalnya pada tahap
ini kita meminta request untuk mengambil data ramalan cuaca untuk esok hari.
2. “Aplikasi Penyedia API” kemudian memproses permintaan tersebut. Apabila data ramalan
cuaca esok hari tersedia maka “Aplikasi Penyedia API” akan mengirimkan response ke
“Aplikasi Kita” berupa data cuaca esok hari. Apabila data ramalan cuaca esok hari tidak
tersedia, maka “Aplikasi Penyedia API” harus tetap mengirimkan response untuk
menginformasikan data ramalan cuaca esok hari tidak tersedia.

1.3. Request dan Response


Saat kita mengakses suatu situs di internet pada dasarnya kita telah melakukan kegiatan
request dan response. Request pada situs di internet yakni saat kita memasukkan alamat situs
ke browser, kemudian browser akan menampilkan situs yang dicari sebagai response. Dalam
mengembangkan API, request dan response memiliki beberapa aturan yang harus dipenuhi
antara lain:

2
Request Response
1. Alamat yang dituju (URL) 1. Messages (tidak wajib, tapi dapat
2. HTTP verb (GET, POST, PUT, menjelaskan hasil response yang
DELETE) keluar). Contoh: “Data berhasil
3. Data yang dikirim (POST, PUT) disimpan”
4. Content-Type 2. Data hasil response (baik ada atau
5. Otentikasi & Otorisasi (biasanya tidak)
dalam bentuk token) 3. Status code (200,404,500,401, dsb)

Kita dapat menggunakan contoh request dan response dari situs


https://kawalcorona.com/api. Situs ini menyediakan API untuk menitoring perkembangan
kasus covid-19 yang terjadi di Indonesia. Berikut ini merupakan contoh request dan response.

1.4. HTTP Client


Setelah mengetahui apa itu API serta peranan nya, maka kita harus mengetahui
bagaimana cara untuk mengakses API. Kita dapat mengakses API dengan menggunakan suatu
tools yang bernama HTTP client. Di internet banyak sekali HTTP client yang dapat kita
gunakan untuk mengonsumsi API. Namun dalam cara penggunaannya dapat terbagi menjadi
dua cara yakni aplikasi/program dan library.

3
Aplikasi Library *
1. Postman 1. cURL
2. Insomnia, 2. Guzzlehttp (PHP)
3. Thunder Client (VS Code 3. Fetch dan Axios (JavaScript)
Extension), dsb. 4. Retrofit dan Volley (Java Android)
5. Requests (Python),
6. Http (Go Lang), dsb

* Hampir disetiap bahasa pemrograman mempunyai HTTP client

Berikut merupakan contoh HTTP client menggunakan aplikasi postman

Catatan: untuk pembahasan selanjutnya kita akan sering menggunakan aplikasi postman
sebagai HTTP client.

1.5. JSON (Javascript Object Notation)


Pada pembahasan sebelumnya telah dijelaskan bahwa API dapat melakukan komunikasi
antar aplikasi, baik yang serupa ataupun beda platform (web, desktop, mobile, dsb). Tidak
peduli menggunakan bahasa pemrograman apapun, API bisa di akses walaupun dari segi
bahasa pemgrograman berbeda. Seperti contoh apabila kita sebagai warga negara Indonesia

4
ingin melakukan komunikasi dengan warga negara Spanyol, maka kita cukup menggunakan
bahasa inggris sebagai bahasa untuk berkomunikasinya. Hal ini dikarenakan kita sebagai warga
negara Indonesia dan lawan bicara kita yang berwarga negara Spanyol dapat mengerti apabila
berkomunikasi dengan bahasa inggris.

Untuk dapat berkomunikasi API dapat menggunakan format data berupa XML ataupun
JSON. Namun dalam materi-materi selanjutnya kita hanya akan menggunakan format JSON
sebagai format pertukaran data. JSON memiliki format data berupa key-value yang memiliki
type data tiap value nya.

Jika diibaratkan sebagai tabel di suatu database, maka key adalah perwujudan dari kolom,
sedangkan value adalah isi dari kolom tersebut. Selain itu apabila kita memiliki lebih dari satu
objek, maka kita bisa memasukkannya ke dalam suatu array seperti berikut:

5
Pada bab selanjutnya kita akan mempraktekan bagaimana mengakses API public dengan
menggunakan aplikasi postman, dimana terdapat dua jenis API public yakni yang memiliki
otentikasi dan yang tidak memiliki otentikasi.

6
BAB II
BELAJAR AKSES API DENGAN POSTMAN

“Sessungguhnya ilmu adalah sebuah pohon, dan amal adalah buahnya”

2.1. Persiapan Tools


Pada bab ini kita akan mempraktekkan cara mengakses API public, baik yang
menggunakan otentikasi maupun yang tidak. Sebelum itu mari kita persiapkan alat praktek kita
antara lain:

1. Browser
2. Postman (https://www.postman.com/product/rest-client/)

2.2. Akses API Public Tanpa Otentikasi


Untuk mengakses API jenis ini, maka kita cukup memasukkan alamat yang kita tuju
beserta http verb nya. Karena API ini bersifat public, maka kita tidak bisa menambah (POST),
mengubah (PUT/PATCH), dan menghapus (DELETE) data yang disajikan API tersebut. Kita
hanya bisa melakukan pengambilan atau memunculkan data saja (GET).

Sebagai contoh kita akan mencoba untuk mengakses API dari situs
https://dummyjson.com/ . Situs ini menyediakan data dummy untuk API yang bisa kita pilih.

Pada halaman awal akan disajikan bagian apa saja yang memiliki API Public. Untuk
praktik kali ini bisa kita ambil contoh menggunakan API sebuah “Products” dengan cara klik
tombol “/products”

7
Pada halaman tersebut kita bisa melihat data dengan detil. Selanjutnya mari kita mulai
mempraktekkannya menggunakan postman.

1. Klik “New”

8
2. Kemudian pilih “HTTP Request”

3. Masukkan URL, pilih http verb “GET”, dan klik tombol “Send”

Masukkan alamat

Pilih http verb “GET”


Klik tombol “Send”

4. Selanjutnya akan muncul response nama-nama produk seperti berikut”

9
Namun ketika kita mengubah URL dengan menambahkan /101, maka hasil menunjukkan
404 not found. Hal ini dikarenakan pihak pembuat API dummyjson tidak menyertakan data
dengan id 101.

10
Kita juga bisa menyimpan hasil dari API yang kita akses dengan ctrl + s, kemudian
simpan pada folder yang kalian inginkan atau membuat folder baru dan bisa merubah nama
projek API kita sesuai keinginan.

Klik icon pensil

11
Ketik nama project
API disini. Contoh :
“Produk Hape”

Mari kita pelajari lebih dalam API dummyjson ini. Pada dokumentasi selanjutnya kita
juga bisa untuk mendapatkan data Produk handphone berdasarkan title. Namun sebelumnya
alangkah baiknya kita membuat sebuah collection terlebih dahulu, agar memudahkan dalam
mengorganisasikan API-API yang kita akses.

1. Tutup semua projek API sebelumnya, untuk memudahkan pemahaman


2. Klik “Create Collection” kemudian klik tanda +

3. Rename folder “New Collection” dengan nama “Produk HP2”

12
4. Klik pada “Produk HP2, lalu “add request”

13
5. Lakukan langkah yang sudah dipelajari sebelumnya.
Selanjutnya coba teman-teman cari data berdasarkan kondisi tertentu ,

2.3. Akses API Public Dengan Otentikasi


Selanjutnya kita akan mempraktekkan untuk mengakses API public yang memiliki
otentikasi. Biasanya API jenis ini memiliki otentikasi berupa token akses, yang mana untuk
mendapatkan token tersebut kita diharuskan untuk membuat akun di penyedia API tersebut.
Pada praktikum kali ini kita menggunakan API dari New York Times untuk menampilkan data
buku bestseller.

1. Akses URL berikut https://developer.nytimes.com/, kemudian klik menu “Sign In”

14
2. Klik “Create an account”

3. Masukkan first name, last name, email, dan password dan centang “I agree to the terms and
conditions”. Kemudian klik tombol “Create Account”

15
4. Apabila berhasil maka akan muncul notifikasi seperti berikut yang mengharuskan kita
untuk mengkonfirmasi akun API ini di email yang kita masukkan di langkah sebelumnya.

5. Buka email yang digunakan untuk registrasi di langkah sebelumnya, kemudian klik “Click
here”. Selanjutnya kita akan dialihkan ke halaman awal API tersebut dan klik “Sign In”
kembali.

16
6. Masukkan email dan password yang telah di registrasi sebelumnya, dan klik tombol “Sign
In”

7. Apabila berhasil masuk maka kita akan dialihkan ke halaman sebelumnya. Namun
perhatikan bagian kanan atas akan berubah dari menu “Sign In” menjadi email yang kita
gunakan. Kemudian klik menu “Apps”

17
8. Klik tombol “+ NEW APP”

18
9. Isi “App Name” dan “Description

10. Pilih “Book API” dengan klik tombol “enable” di sebelah kanan. Kemudian klik tombol
“save”

19
11. Apabila berhasil disimpan maka kita akan mendapatkan token untuk mengakses API

Saat ini kita telah membuat token akses untuk API. Maka kita bisa mengakses API
tersebut sesuai dengan peruntukkannya. New York Times memiliki beberapa API yang bisa
kita gunakan. Tapi karena saat ini kita hanya mengaktifkan API untuk buku best seller saja,
maka kita hanya bisa mengakses API buku best seller saja. Untuk melihat dokumentasi API,
kita bisa mengakses menu “APIs”.

12. Akses menu “APIs”

20
13. Klik menu “Book API”

14. Selanjutnya akan muncul dokumentasi dari Book API, mari kita gunakan alamat
/lists/names.json.

Untuk mengakses alamat diatas, kita harus menambahkan token akses kita di belakang
alamatnya.

21
Warna garis Keterangan
Merah Base URL (URL utama dari API)
Biru URL dari API yang kita tuju
Hijau Query parameter (dalam kasus ini sebagai parameter dari token
akses kita)
Hitam Token akses

15. Kita akan mencoba untuk menggunakan postman

Silahkan teman-teman untuk eksplorasi API New York Times secara mandiri.

22
BAB III
MEMBUAT API SEDERHANA

“Aku lebih takut kepada orang yang melatih 1 jurus tendangan sebanyak 1000 kali, daripada
kepada orang yang berlatih 1000 jurus tendangan sebanyak 1 kali” -Bruce Lee

3.1. Persiapan Tools


Pada bab ini kita akan mempraktekkan cara membangun API menggunakan framework
Laravel. Sebelum itu mari kita persiapkan alat praktek kita antara lain:

1. Browser
2. Postman
3. XAMPP / LAMPP / WAMPP
4. Laravel versi 8
5. Text Editor (Visual Studi Code/Atoms/Notepad++, dsb)
6. Composer

3.2. Install Laravel Via Composer


Sebelum mulai membangun API dengan Laravel, maka kita harus menginstall laravel
terlebih dahulu. Laravel dapat diinstal dengan beberapa cara, namun pada pembahasan kali ini
kita akan menggunakan aplikasi composer.

1. Akses alamat https://getcomposer.org dan klik tombol “Download”

23
2. Klik link “Composer-Setup.exe” dan ikuti instruksi install nya

3. Apabila sudah install maka buka terminal / command prompt (cmd). Kemudian ketik
perintah “composer”

24
4. Selanjutnya tentukan akan ditaruh dimana projek laravel kita, pada gambar dibawah kita
menyimpannya di D:/projects. Kemudian ketikan perintah “composer create-project
laravel/laravel <nama projek kita>” dan klik enter.

Catatan: Untuk menginstall laravel kita harus terkoneksi dengan internet karena akan
mendownload projek laravel beserta dependenci nya dan harus menunggu beberapa saat
sampai selesai. (Laravel versi 8)

25
5. Kita dapat melihat hasil projek di direktori yang telah dipilih pada langkah sebelumnya

6. Kembali ke terminal / command prompt dan arahkan ke folder projek kita. Kemudian
ketikan perintah “php artisan serve” dan tekan enter

7. Maka laravel kita akan running dengan alamat http://127.0.0.1:8000 atau


http://localhost:8000

26
8. Apabila muncul tampilan dibawah maka projek laravel berhasil di running

3.3. Koneksikan Laravel dengan Database MySQL


Pada tahapan ini kita akan mencoba mengoneksikan projek Laravel kita dengan database
MySQL. Sebelumnya kita harus mengaktifkan apache web server dan database mysql yang
terdapat di aplikasi XAMPP/LAMPP/WAMPP.

27
1. Aktifkan Apache web server dan MySQL di XAMPP

2. Buat database “belajar-rest-api”

3. Jika sudah buka projek laravel kita di text editor. Dalam praktikum kali ini kita
menggunakan aplikasi Visual Studio Code

28
4. Pilih projek laravel kita sesuai dengan lokasi penyimpanan projek.

29
5. Maka akan muncul isi dari projek kita di Visual Studio Code

6. Selanjutnya kita buka file .env di root projek. Di file .env kita akan melakukan konfigurasi
database yang kita gunakan baik dari hostname, username, nama database, hingga
password database. Kemudian kita save dengan ctrl + s.

Catatan: file .env berisi beberapa konfigurasi yang diperlukan untuk projek laravel. Dalam
kasus ini kita hanya perlu mengubah konfigurasi database saja

30
Selanjutnya mungkin kita akan bertanya-tanya, kapan kita akan membuat skema dari
database yang sudah kita buat. Tidak seperti sebelumnya kita membuat skema database
langsung di phpmyadmin, kali ini kita akan membuat skema database di laravel. Hal ini akan
memudahkan teman satu tim kita atau orang lain ketika ingin melanjutkan projek laravel kita
sehingga tidak harus meng-import database buatan kita sebelumnya ataupun membuat skema
database dari awal.

Untuk membuat skema database kita bisa menggunakan perintah “php artisan
make:migration <nama_skema_database>” di terminal / command prompt kita.

1. Kita buat skema dengan nama create_products_table dengan perintah “php artisan
make:migration create_products_table”.

Dari perintah diatas maka akan menghasilkan file skema di projek laravel kita yang berlokasi
di folder database/migrations

31
2. Kita buat kolom product_name, product_type, product_price, dan expired_at. Tiap kolom
mempunyai type data yang berbeda. Kemudian save dengan ctrl + s.

32
Catatan: type data yang tersedia di laravel migration sangat banyak. Kita dapat mempelajari
lebih lanjut di alamat berikut: https://laravel.com/docs/8.x/migrations#available-column-types

3. Selanjutnya yakni kita migrasikan skema database kita ke database MySQL. Dengan
menggunakan perintah “php artisan migrate” di terminal / command prompt

Untuk memastikan skema sudah di migrasi, kita bisa memeriksanya di phpmyadmin

33
Catatan: ada beberapa hasil migrasi yang tidak kita buat tergenerate, itu karena dalam folder
database/migrations terdapat beberapa file skema.

3.4. Membuat RESTful API


Pada dasarnya laravel menggunakan konsep MVC (Model, View, Controller) yang mana
code dipisah berdasarkan penggunaannya (separate of concerns). Namun dalam kasus
membuat API kita tidak terlalu membutuhkan tampilan (View) dari aplikasi API (kecuali
terdapat kasus tertentu seperti membuat halaman register untuk pengguna API, dan
sebagainya).

Pertama-tama yang harus kita lakukan yakni memahami flow/alur dari laravel. Mari kita
lihat pada gambar dibawah.

34
Kita perhatikan anak panah berwarna hijau, anak panah hijau merupakan request yang
mana akan melakukan permintaan dari pengguna ke aplikasi/sistem. Selanjutnya akan
diteruskan dari route - controller – model – database - view, dan akan dikembalikan ke
pengguna sebagai response (anak panah biru). Pada API alur yang terjadi yakni cukup route -
controller – model – database, tidak melibatkan view.

Selanjutnya kita akan memperdalam istilah-istilah diatas pada tabel dibawah ini.

Istilah Keterangan
Route Rute dari aplikasi yang kita miliki, apabila kita melakukan request ke
URL tertentu dan akan menghasilkan response tertentu. Contoh ketika
kita mengakses menu “tentang kami” pada situs perusahaan, maka
browser akan menampilkan halaman “tentang kami”. Apabila alamat
yang dituju tidak tersedia di situs tersebut maka akan muncul halaman
“404 not found”
Controlller Tempat untuk memasukkan logic dari aplikasi kita, pada beberapa
framework sudah menggunakan konsep Object Oriented Programming
(OOP). Pada controller pula kita akan
menghubungkan/mengintegrasikan code seperti library, model, helper,
dsb.
Model Tempat untuk memasukkan logic yang berhubungan dengan database
(representasi dari database). Pada laravel kita bisa menggunakan
Eloquent.
Database Tempat kita untuk menyimpan data, bisa berupa SQL ataupun NoSQL.
Untuk mengakses database di laravel kita bisa menggunakan eloquent
ataupun query builder.
View Tempat kita untuk memasukkan UI atau tampilan dari aplikasi kita, yang
terdiri dari tag html. Pada API kita tidak terlalu membutuhkan view.

3.4.1. Create
Sebelum membuat fungsi menambahkan data atau create, kita akan membuat controller
terlebih dahulu. Dengan laravel kita dapat membuat controller dengan menggunakan perintah
“php artisan make:controller <nama_controller>” di terminal / command prompt (di root
directory projek kita).

35
1. Buat controller dengan nama “ProductController”

Kita dapat melihat controller yang berhasil dibuat di


app/Http/Controllers/ProductController.php

Kemudian untuk dapat mengakses database kita perlu model. Model pada laravel dapat
dibuat dengan menggunakan perintah “php artisan make:model <nama_model>” di terminal /
command prompt (di root directory projek kita).

2. Buat model dengan nama “Product”

Kita dapat melihat model yang berhasil dibuat di app/Http/Models/Product.php

36
Agar controller kita dapat di akses via URL, maka kita harus menambahkannya di
routes/api.php.

Catatan: Pada laravel kita dapat membuat empat jenis route. Namun yang paling umum
digunakan yakni untuk API (api.php) dan website pada umumnya (web.php).

3. Ubah api.php yang berada di routes/api.php menjadi seperti berikut

37
Selanjutnya kita akan membuat fungsi untuk menambah data di ProductController.php.
Sesuai dengan nama function di routes/api.php kita akan membuat fungsi bernama “store”.
Namun sebelumnya kita harus mengubah model Product.php menjadi seperti berikut.

4. Ubah model Product.php seperti berikut

Hal ini berguna karena kita akan memberikan izin agar eloquent dapat melakukan insert
terhadap kolom-kolom tersebut.

5. Buat function store di ProductController.php seperti berikut

38
Selanjutnya kita akan mencoba menggunakan postman untuk melakukan input data.
Sebelumnya kita buat sebuah collection di postman agar memudahkan dalam
mengorganisasikan API yang dibuat.

1. Buat collection dengan nama “CRUD Laravel”

Dalam kasus ini kita akan mencoba menguji API yang kita buat dengan memasukkan
beberapa inputan yang salah.

2. Ikuti instruksi pada gambar dibawah, kemudian klik tombol “Send”

39
Catatan: Secara default segmentasi url di Laravel untuk web dengan API berbeda. Pada API
kita menambahkannya dengan “/api/”.

Mungkin kita akan kesulitan untuk menentukan jika POST atau PUT kita harus
menggunakan Body yang mana. Untuk lebih memudahkan kita dapat melihat pada tabel
berikut:

Jenis Body Content-Type Keterangan


none none Ketika kita mengakses url
dengan POST atau PUT tanpa
ada inputan
form-data application/form-data Ketika kita mengakses url
dengan POST atau PUT yang
memiliki inputan biasa atau
bisa berupa file. (Contoh:
upload foto, atau berkas)
x-www-form-urlencoded application/x-www-form- Ketika kita mengakses url
urlencoded dengan POST atau PUT yang
memiliki inputan biasa.
(Contoh: input nama, alamat,
dsb)
raw (biasanya JSON) application/json Ketika kita mengakses url
dengan POST atau PUT yang
memiliki inputan biasa namun
menuliskannya dengan format
JSON. (Seperti contoh diatas)
binary none True or False
GraphQL - Format graphQL

Biasanya kita hanya menggunakan form-data, x-www-form-urlencoded, dan raw JSON


karena sering dipakai saat ini. Pastikan server development kita running (XAMPP dan laravel).

40
Maka response yang dihasilkan menjadi seperti berikut.

Info: Error

Status Code : 422 Unprocessable Content (Konten yang dimuat tidak dapat diproses)

product_type : karena tidak ada type produk dengan nama “food”

expired_at : karena tidak ada bulan 13 pada kalender masehi

3. Mari kita ubah body JSON nya menjadi seperti berikut.

Maka response yang dihasilkan menjadi seperti berikut.

Info: Error

Status Code : 422 Unprocessable Content (Konten yang dimuat tidak dapat diproses)

product_price : karena product price nya tidak diisi

41
Catatan: pada kasus diatas kita memasukkan field baru bernama “brand_name” tapi tidak
menimbulkan error, ini dikarenakan kita tidak memvalidasi field bernama “brand_name”
sehingga hal ini tidak akan ditangani oleh API kita.

4. Kita ubah body JSON kita dengan benar menjadi seperti berikut

Maka response yang dihasilkan menjadi seperti berikut

Info : Success

Status Code: 201 Created (Berhasil dibuat)

Msg: “Data produk berhasil disimpan”

Untuk memastikan bahwa inputan berhasil disimpan, mari kita lihat tabel produk di database.

3.4.2. Read
Untuk menampilkan data kita bisa menambahkan beberapa function di
ProductController.php, karena biasanya kita tidak hanya menampilkan data secara
keseluruhan, tapi kita juga bisa menampilkan data secara spesifik maupun data yang memiliki
kemiripan (similar).

42
Sekarang mari membuat 3 function dengan nama “showAll”,”showById”, dan
”showByName” di ProductController.php seperti berikut.

1. Buat function dengan nama “showAll”,”showById”, dan ”showByName” di


ProductController.php

Kita akan berfokus terlebih dahulu untuk menampilkan data produk secara keseluruhan.

43
2. Buat code seperti berikut di dalam function showAll.

3. Selanjutnya kita pasangkan rute nya di routes/api.php

4. Akses menggunakan postman

Catatan: bagaimana alamat untuk menambah data dan menampilkan data bisa sama tapi tidak
terjadi conflict? Hal ini karena masing-masing url memiliki http verb yang berbeda.

44
Maka response yang dihasilkan menjadi seperti berikut

Untuk lebih memudahkan penjelasan, mari kita tambahkan terlebih dahulu data produk
menggunakan API tambah data produk pada pembahasan sebelumnya.

Selanjutnya kita akan menampilkan data berdasarkan ID dari produk di database

1. Buat code seperti berikut di dalam function showById.

45
2. Selanjutnya kita pasangkan rute nya di routes/api.php

Catatan: Jika kita perhatikan terdapat tanda {id} di pendefinisian rute, ini dinamakan query
parameter.
3. Akses menggunakan postman

46
Apabila kita ubah id menjadi angka 10 maka akan muncul response berikut

Terakhir kita akan menampilkan data berdasarkan kemiripan nama dari produk di database

1. Buat code seperti berikut di dalam function showByName.

2. Selanjutnya kita pasangkan rute nya di routes/api.php

47
3. Akses menggunakan postman

Maka response yang dihasilkan seperti berikut.

Apabila kita menggantinya dengan nama produk yang tidak ada di database maka response
yang dihasilkan seperti berikut

48
3.4.3. Update
Untuk mengubah data produk kita dapat menambahkan satu fungsi di
ProductController.php. Kita akan membuat method dengan nama “update” untuk mengubah
data berdasarkan ID produk.

Catatan: pada update kita dapat menggunakan http verb PUT dan PATCH. PUT berguna untuk
mengubah keseluruhan isi kolom dari satu baris di tabel. Sedangkan PATCH berguna untuk
mengubah satu atau lebih isi kolom dari satu baris di tabel.

Pada kasus kali ini kita menggunakan PUT karena kita tidak memiliki filter kolom tabel
mana saja yang bisa di sunting atau tidak.

1. Tambahkan function update di ProductController.php seperti berikut. Sekilas mirip


seperti fungsi tambah data produk, yang membedakan hanya query database untuk update data
saja.

49
2. Selanjutnya kita pasangkan rute nya di routes/api.php

Sebelum mencoba di postman, kita tentukan data produk mana yang akan diubah. Misal kita
akan mengubah data produk “Nescafe Original” yang memiliki ID 2.

3. Akses menggunakan postman

50
Maka response yang dihasilkan seperti berikut

Untuk lebih memastikan kita akan memeriksa di database

51
3.4.4. Delete
Untuk menghapus data kita dapat menambahkan satu fungsi dengan nama “delete” di
ProductController.php.

1. Masukkan code berikut ke function “delete”

2. Selanjutnya kita pasangkan rute nya di routes/api.php

Sebelum mencoba di postman, kita tentukan data produk mana yang akan dihapus. Misal kita
akan mengubah data produk “Vitacimin” yang memiliki ID 3.

4. Akses menggunakan postman

52
Maka response yang dihasilkan seperti berikut.

Untuk lebih memastikan kita akan memeriksa di database

53
3.5. Otentikasi dan Otorisasi API dengan JWT
Ketika membuat API terkadang kita ingin API yang kita miliki tidak bisa diakses oleh
sembarang orang. Seperti halnya form login pada suatu aplikasi, pada API kita juga dapat
menggunakan otentikasi seperti form login. Namun penggunaannya akan berbeda, biasanya
berupa token atau string acak sebagai credential nya.

Pada pembahasan kali ini kita akan menggunakan token JWT sebagai credential token
nya, JWT merupakan singkatan dari JSON Web Token. Tidak seperti session yang terdapat
pada situs umumnya, JWT tidak disimpan di sisi server melainkan disimpan di sisi klien. Jadi
ini memudahkan kita ketika memiliki aplikasi yang sama namun disimpan lebih dari satu server
(untuk kebutuhan ketersediaan sistem).

3.5.1. Otentikasi Token JWT


Sebelum menggunakan JWT sebagai token credential di laravel. Kita harus mengunduh
terlebih dahulu library JWT nya menggunakan composer. Kita bisa menggunakan library dari
firebase/php-jwt sebagai penyedia JWT. (Link dokumentasi: https://github.com/firebase/php-
jwt)

1. Buka terminal / command prompt dan ketik perintah “composer require firebase/php-jwt”
dan tekan Enter di root directory project kita

2. Buat variabel di file .env dengan nama “JWT_SECRET_KEY=keyrahasia” di root


directory

54
3. Sebelumnya kita buat seeder untuk tabel users. Seeder merupakan salah satu cara untuk
memasukkan data dummy ke dalam tabel dengan laravel. Buat seeder dengan nama
“UserSeeder” dengan perintah “php artisan make:seeder <nama_seeder>”

File seeder akan tergenerate di database/seeders/UserSeeder.php

55
4. Buka file UserSeeder.php dan buat kode seperti berikut

5. Kemudian buka terminal / command prompt dan ketik perintah “php artisan db:seed –
class=UserSeeder”

Untuk lebih memastikan mari kita periksa di tabel users

Kita akan memisahkan controller untuk data produk dan data pengguna.

56
6. Buat controller dengan nama UserController di terminal / command prompt dan buat
function dengan nama “login”.

7. Masukkan code berikut di UserController.php

57
8. Buat rute login di routes/api.php

9. Akses menggunakan postman

Maka response yang dihasilkan seperti berikut

Kita bisa melihat hasil decode dari token di https://jwt.io , kita copy token kita dan paste kan
di form seperti berikut.

58
Mungkin akan muncul pertanyaan, apakah ini aman karena kita bisa melihat isi dari token
tersebut. Selama secret key tidak diketahui oleh orang lain maka token ini aman. Hanya saja
tinggal bagaimana kita mengisi payload (isian) dari token tersebut.

59
3.5.2. Otorisasi Token JWT
Selain berfungsi sebagai otentikasi, JWT juga berperan dalam otorisasi sistem atau
aplikasi. Misal ketika kita memiliki token sebagai admin, maka kita hanya bisa mengakses API
untuk admin saja. Sedangkan ketika kita memiliki token sebagai pengguna, maka hanya bisa
mengakses API untuk pengguna saja.

Untuk mencoba membuat otorisasi di laravel, kita harus mengenal terlebih dahulu apa
itu middleware. Middleware secara sederhana merupakan software layer yang berada di antara
router dengan controller, yang berfungsi untuk menyaring request dari pengguna sebelum ke
controller. Dalam kasus ini fungsi middleware yakni untuk memberi otorisasi untuk setiap
token yang di request pengguna.

Di laravel kita dapat membuat middleware dengan mengetikkan perintah “php artisan
make:middleware <nama_middleware>” pada terminal / command prompt. Dalam kasus ini
kita akan membuat middleware dengan nama “AuthMiddleware”.

1. Buat middleware dengan nama “AuthMiddleware”

60
2. Masukkan code berikut di AuthMiddleware.php

3. Selanjutnya kita registrasikan middleware ke Kernel.php dan beri nama ‘jwt-auth’ seperti
pada baris 66.

61
4. Selanjutnya kita grouping route API dari data produk ke dalam middleware “jwt-auth”

Setelah kita grouping route API data produk, maka ketika kita ingin mengakses data
produk kita diharuskan untuk memiliki token JWT terlebih dahulu. Apabila tidak maka request
kita akan tertolak dan mendapatkan response message “Akses ditolak, token tidak memenuhi”.
Ketika kita mendapatkan token JWT, kita harus memasukkannya kedalam header
“Authorization”.

Sebelumnya kita harus menguji terlebih dahulu, ketika kita mengakses API produk tanpa
token JWT. Mari kita menguji dengan menampilkan data produk keseluruhan.

62
Seperti yang terlihat, kita tidak bisa mengakses API untuk menampilkan data produk
secara keseluruhan. Selanjutnya kita akan coba login terlebih dahulu untuk mendapatkan token
JWT

Kita salin token tersebut dan memasukkan nya ke dalam header dengan key “Authorization”
di API data produk keseluruhan dan klik tombol send.

63
Maka response yang dihasilkan seperti berikut

Silahkan teman-teman untuk mencoba akses API produk yang lain menggunakan token JWT.

64
BAB IV
MEMBUAT APLIKASI MENU MASAKAN (API BACKEND)

Pada bab ini kita akan mencoba membuat API dengan studi kasus menu masakan dengan
mengikuti skema database seperti berikut:

4.1. Instalasi Laravel


Instalasi projek laravel terlebih dahulu dengan menggunakan perintah composer
create-project laravel/laravel:^8.0 <nama_projek>. Pada projek ini kita beri nama
belajar-rest-api, maka perintah nya adalah composer create-project

laravel/laravel:^8.0 belajar-rest-api.

4.2. Konfigurasi
Selanjutnya kita lakukan konfigurasi database, bahasa yang digunakan, zona waktu dan
tanggal, serta bahasa yang digunakan untuk melakukan seeding database. Hal ini akan
memudahkan pengguna untuk memahami API yang kita buat sehingga meningkatkan user
experience (UX) dari sisi frontend, mencegah perbedaan zona waktu server dengan pengguna
serta memudahkan anggota tim lain saat mencoba API kita saat proses development.

65
4.2.1. Konfigurasi Database
1. Buat database “belajar-rest-api” di localhost/phpmyadmin

2. Selanjutnya kita buka file .env di root projek. Di file .env kita akan melakukan konfigurasi
database yang kita gunakan baik dari hostname, username, nama database, hingga
password database.

• DB_CONNECTION : provider database yang digunakan (default: mysql)


• DB_HOST : IP Address dari database (default: 127.0.0.1 / localhost)
• DB_PORT : Port dari database (default: 3306 / port mysql)
• DB_DATABASE : nama database
• DB_USERNAME : username database
• DB_PASSWORD : password database

66
4.2.2. Konfigurasi Bahasa
Pada API kali ini kita akan menggunakan bahasa Indonesia sebagai bahasa dari aplikasi
yang dibuat. Untuk menggunakannya kita harus menginstall library laravel-lang, ikuti tahap
berikut:

1. Masukkan perintah composer require laravel-lang/publisher:^12.0 laravel-


lang/lang:^10.9 laravel-lang/attributes:^1.1 menggunakan terminal/command
prompt di root projek kita.

Catatan: sesuaikan dengan versi PHP yang terpasang di komputer kita, pada kasus ini
PHP yang terpasang yakni versi 7.0. Untuk memeriksa kompatibilitas dari library ini
bisa dilihat pada link berikut https://publisher.laravel-
lang.com/installation/compatibility.html

2. Selanjutnya jalankan perintah php artisan vendor:publish --


provider="LaravelLang\Publisher\ServiceProvider"

3. Setelah itu jalankan perintah php artisan lang:add id .Perintah ini akan menginstalasi
bahasa Indonesia (id) untuk beberapa fitur yang menggunakan bahasa di Laravel seperti
validasi form, paginasi, pesan otentikasi dan sebagainya.

67
4. Terakhir pada file config/app.php ubah isi locale menjadi id

4.2.3. Konfigurasi Zona Waktu (Timezone)


Pada file config/app.php ubah isi timezone menjadi Asia/Jakarta

4.2.4. Konfigurasi Bahasa Seeding Database


Pada file config/app.php ubah isi faker_locale menjadi id_ID

68
4.1. Skema Tabel Dengan Laravel Migration
4.1.1. Skema Tabel User
1. Kita buat skema dengan nama create_user_table dengan perintah “php artisan
make:migration create_user_table”. Dari perintah diatas maka akan menghasilkan file
skema di projek laravel kita yang berlokasi di folder database/migrations

Catatan: secara default skema migrasi user sudah dibuat oleh laravel pada saat proses
instalasi sehingga kita bisa langsung mengubah isi dari skema user seperti pada gambar
dibawah ini.

2. Ubah isi dari file create_users_table di dalam public function up

69
4.1.2. Skema Tabel Resep
Kita buat skema dengan nama create_resep_table dengan perintah “php artisan make:migration
create_resep_table”. Kemudian ubah menjadi seperti berikut ini.

4.1.3. Skema Tabel Alat


Kita buat skema dengan nama create_alat_table dengan perintah “php artisan make:migration
create_alat_table”. Kemudian ubah menjadi seperti berikut ini.

70
4.1.4. Skema Tabel Bahan
Kita buat skema dengan nama create_bahan_table dengan perintah “php artisan
make:migration create_bahan_table”. Kemudian ubah menjadi seperti berikut ini.

4.1.5. Skema Tabel Resep View


Kita buat skema dengan nama create_resep_view_table dengan perintah “php artisan
make:migration create_resep_view_table”. Kemudian ubah menjadi seperti berikut ini.

71
4.1.6. Skema Tabel Rating
Kita buat skema dengan nama create_rating_table dengan perintah “php artisan
make:migration create_rating_table”. Kemudian ubah menjadi seperti berikut ini.

4.1.7. Skema Tabel Log


Kita buat skema dengan nama create_log_table dengan perintah “php artisan make:migration
create_log_table”. Kemudian ubah menjadi seperti berikut ini.

72
Catatan: type data yang tersedia di laravel migration sangat banyak. Kita dapat mempelajari
lebih lanjut di alamat berikut: https://laravel.com/docs/8.x/migrations#available-column-types

4. Selanjutnya yakni kita migrasikan skema database kita ke database MySQL. Dengan
menggunakan perintah “php artisan migrate” di terminal / command prompt

73
Untuk memastikan skema sudah di migrasi, kita bisa memeriksanya di phpmyadmin

Catatan: ada beberapa hasil migrasi yang tidak kita buat tergenerate, itu karena dalam folder
database/migrations terdapat beberapa file skema.

74
4.2. Laravel Seeder dan Laravel Factories : Data Dummy
Selanjutnya kita akan membuat data dummy (data palsu untuk kebutuhan development)
pada tabel user dengan menggunakan Laravel Seeder dan Laravel Factories. Namun
sebelumnya kita buat terlebih dahulu model dari tabel user dengan perintah php artisan
make:model User untuk menghubungkan data seeder agar dapat disimpan ke tabel user di
database. Kemudian kita ubah bagian fillable pada user model menjadi berikut (disesuaikan
dengan kolom di tabel) dan tambahkan variabel table seperti dibawah ini.

Pada variabel fillable kita tidak memasukkan kolom created_at dan updated_at, hal ini
dikarenakan 2 kolom tersebut akan otomatis terisi apabila kita melakukan tambah data atau
sunting data.

Catatan: secara default model user sudah dibuat ketika kita instalasi laravel, sehingga kita tidak
perlu buat model user setelahnya

4.2.1. Membuat UserSeeder dengan Laravel Seeder


Tahap selanjutnya kita akan membuat seeder yang akan terkoneksi dengan model user.
Sebelum itu kita akan menggunakan perintah php artisan make:seeder UserSeeder untuk
generate UserSeeder.

75
1. Setelah berhasil generate, silahkan ubah UserSeeder menjadi seperti berikut

2. Selanjutnya ubah file DatabaseSeeder seperti berikut

76
3. Setelah itu masukkan perintah php artisan db:seed di terminal/command prompt
projek kita dan pastikan sudah masuk data admin ke tabel user

4.2.2. Membuat UserFactory dengan Laravel Factories


Laravel Factories merupakan library built in laravel yang digunakan untuk membuat data
dummy tanpa harus kita menyimpannya satu persatu ke database dan dapat menghasilkan
berapapun data dummy yang diperlukan. Untuk menggunakannya kita gunakan perintah php
artisan make:factory <nama_factory> --model=<nama_model>.

1. Karena akan digunakan untuk mengisi tabel user maka kita buat perintahnya menjadi php
artisan make:factory UserFactory --model=User. Maka akan menghasilkan file
UserFactory.php di folder database/factory.

Catatan: secara default UserFactory.php sudah dibuat ketika kita instalasi laravel

2. Ubah isinya menjadi seperti berikut

77
Untuk dokumentasi tipe-tipe factory yang bisa digunakan dapat dilihat pada link berikut:
https://fakerphp.github.io/formatters/. Kita juga dapat menghubungkan Laravel Factories ke
Laravel Seeder.

3. Tambahkan code berikut di UserSeeder dan jalankan perintah php artisan db:seed

4. Jika muncul error maka kosongkan tabel user dan jalankan perintah diatas kembali. Jika
sukses maka akan ter-generate user sebanyak 50 data.

78
4.3. Membuat API Daftar Akun (Guest)
Dalam API Menu Masakan terdapat fitur untuk melakukan registrasi atau pendaftaran
akun, fitur ini berguna apabila pengguna ingin publish resep masakan. Pada fitur ini kita akan
melakukan pengisian informasi akun seperti nama, email, password. Apabila sukses maka
pengguna dapat membuat resep masakan. Ikuti langkah-langkah berikut:

1. Buka terminal / command prompt dan ketik perintah “composer require firebase/php-jwt”
dan tekan Enter di root directory project kita

79
2. Buat variabel di file .env dengan nama “JWT_SECRET_KEY=<teks_acak>” di root
directory.

3. Buat controller dengan nama AuthController, buka di folder app/Http/Controllers dan


ubah isinya menjadi seperti berikut

80
4. Selanjutnya kita akan menambahkan baris kode di app\Models\User.php untuk membuat
password otomatis di lakukan hash

5. Setelah itu kita akan buat observer untuk menjalankan suatu tugas ketika pengguna
berhasil registrasi akun, yakni menambahkan kapan pengguna terakhir kali melakukan
login (pada kolom last_login tabel user). Masukkan perintah php artisan

81
make:observer <nama_observer> --model=<nama_model>. Pada kasus ini maka php
artisan make:observer UserObserver --model=UserObserver

6. Buka file app\Observers\UserObserver.php dan tambahkan fungsi berikut

7. Daftarkan UserObserver ke dalam app\Providers\EventServiceProvider.php dan ikuti kode


berikut

82
8. Pada observer kita juga dapat melakukan logging. Logging merupakan suatu sistem untuk
membuat history/riwayat pengguna dalam mengakses suatu sistem. Untuk membuatnya
kita siapkan terlebih dahulu model log dengan memasukkan perintah php artisan
make:model Log. Kemudian buka dan ubah isinya menjadi seperti berikut:

9. Ubah kode pada app\Observers\UserObserver.php seperti berikut

83
10. Terakhir kita buat route untuk mengakses API registrasi akun di routes/api.php

11. Selanjutnya kita akan test API registrasi menggunakan postman, sebelumnya kita buat
terlebih dahulu collection agar testing API lebih rapi dan terstruktur

12. Pada test API terlihat bahwa pesan kesalahan terlihat sangat rumit untuk dikenali, kita akan
mengubahnya ke format yang lebih mudah dibaca (readable). Kita buat sebuah helper
untuk memudahkan format pesan kesalahan dengan membuat secara manual di dalam
folder app\Helpers\MessageError.php dan dapat digunakan oleh seluruh fitur.

13. Ubah MessageError.php menjadi seperti berikut:

84
14. Selanjutnya tambahkan kode berikut di composer.json (root projek) dan isi di dalam
autoload

15. Setelah itu kita masukkan perintah composer dump-autoload di terminal/cmd root projek
kita

85
16. Terakhir ubah kode untuk validasi error inputan seperti berikut dan coba jalankan postman
kembali

86
Berikut hasil apabila inputan sesuai dengan aturan dari registrasi

4.4. Membuat API Login


Selanjutnya kita akan membuat API untuk keperluan login API Menu Masakan. Pada
API ini terdapat inputan email dan password. Apabila pengguna berhasil login maka pengguna
dapat memberikan feedback dan rating, serta menambahkan menu masakan. Untuk membuat
API login ikuti langkah berikut:

87
1. Pada AuthController kita tambahkan function login dan isinya yakni sebagai berikut

88
2. Terakhir akan test API login menggunakan postman

89
4.5. Membuat API Modul Admin
4.5.1. User Management
A. Tambah Akun Via Admin

Pada pembahasan ini kita akan membuat fitur untuk melakukan registrasi akun melalui
admin, sebelum membuat controller kita akan membuat terlebih dahulu grouping route di
routes/api.php. Pada grouping route ini terdapat 3 group berdasarkan role/hak akses API:
admin, user, dan guest. Untuk mengakses fitur-fitur admin kita harus memiliki token admin.

1. Ubah routes/api.php menjadi seperti berikut:

2. Kemudian masukkan perintah php artisan make:controller AdminController.


Kemudian ubah AdminController.php menjadi seperti berikut

90
3. Setelah itu kita buat middleware dengan memasukkan perintah php artisan

make:middlware AdminMiddleware. Maka akan muncul file di


app\Https\Middleware\AdminMiddleware.php dan ubah menjadi kode berikut

91
4. Selanjutnya kita daftarkan middleware yang sudah kita buat di app\Http\Kernel.php dan
masukkan potongan baris kode berikut ke dalam $routeMiddleware

5. Selanjutnya kita coba test API, namun sebelumnya kita harus login terlebih dahulu sebagai
admin dan kita salin token berikut (salin token hanya dari teks “Bearer”)

92
6. Terakhir kita masukkan token tersebut ke dalam tab Authorization pada endpoint API kita
pilih tipe token “Bearer Token”dan tempelkan token kita di form token

7. Lalu masukkan inputan di tab Body pilih format JSON

93
94
B. Lihat Semua Akun

Pada pembahasan ini kita akan membuat semua fitur untuk melihat semua akun dengan
role user.

1. Tambah baris kode pada routes/api.php menjadi seperti berikut

2. Tambahkan kode pada AdminController.php menjadi seperti berikut

3. Lalu test API dengan memasukan url seperti berikut, dan pastikan tokennya juga diisi

95
C. Lihat Detail Akun

Pada pembahasan ini kita akan membuat fitur untuk melihat detail akun. Melihat detail
akun menggunakan parameter id sebagai kunci nya.

1. Ubah routes/api.php menjadi seperti berikut

96
2. Tambah kode berikut di AdminController.php

3. Lalu test API dengan memasukan url seperti berikut, dan pastikan tokennya juga diisi

97
D. Update Akun

Pada pembahasan ini kita akan membuat fitur untuk update akun. Update akun
menggunakan parameter id sebagai kunci nya.

1. Ubah routes/api.php menjadi seperti berikut

98
2. Tambah kode berikut di AdminController.php

99
3. Kemudian ubah kode berikut pada app\Observers\UserObserver.php

4. Lalu test API dengan memasukan url seperti berikut, dan pastikan token diisi

100
101
E. Hapus Akun

Pada pembahasan ini kita akan membuat fitur untuk hapus akun. Hapus akun
menggunakan parameter id sebagai kunci nya.

1. Ubah routes/api.php menjadi seperti berikut

2. Tambah kode berikut di AdminController.php

102
3. Kemudian tambah kode berikut pada app\Observers\UserObserver.php

4. Lalu test API dengan memasukan url seperti berikut dan isi sesuai id yang akan dihapus,
serta pastikan token diisi

103
F. Aktivasi Akun

Pada pembahasan ini kita akan membuat fitur untuk aktivasi akun. Aktivasi akun
menggunakan parameter id sebagai kunci nya.

1. Ubah routes/api.php menjadi seperti berikut

104
2. Tambah kode berikut di AdminController.php

3. Lalu test API dengan memasukan url seperti berikut dan isi sesuai id yang akan di aktivasi,
serta pastikan token diisi

105
106
4.5.2. Resep
Pada pembahasan kali ini kita akan membuat fitur untuk admin dapat mengelola data
resep seperti menambah resep, melihat resep, menghapus resep, menyunting resep, dan publish
resep.

A. Menambah Resep
1. Tambah routes/api.php menjadi seperti berikut:

2. Kita persiapkan 3 model untuk membuat resep secara keseluruhan yakni model Recipe,
Tool, Ingredient

3. Buat app\Http\Models\Recipe.php menjadi seperti berikut

107
4. Buat app\Http\Models\Tool.php menjadi seperti berikut

5. Buat app\Http\Models\Ingredient.php menjadi seperti berikut

Tambahkan

108

Anda mungkin juga menyukai