Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Tutorial Membuat API dengan Laravel 8 (Part 1)

Posted on March 14, 2022

Pada tutorial kali ini kita akan membuat sebuah RESTful API menggunakan Laravel 8. Lebih khususnya, kita akan mengadopsi sebuah framework API yang sudah cukup matang, yaitu Apiato. Menurut yang empunya, Apiato adalah “The open source flawless framework for building scalable and testable API-Centric Apps with PHP and Laravel“, sebuah framework opensource yang secara flawless/tanpa tedeng aling-aling digunakan untuk membangun aplikasi dengan filosofi API-sentris yang skalabel dan testabel dengan menggunakan PHP dan Laravel.

Adapun fitur dari Apiato ini sendiri antara lain:

  • Otentifikasi dengan OAuth 2.0
  • RBAC (role-based access control) dengan contoh super admin, role dan permission nya
  • Query parameter bawaan seperti orderBy, sortedBy dan filter lain
  • Ada endpoint khusus untuk mengelola user, role/permission, token dll
  • API documentation generator dengan PHP Docblok dan ApiDocJS
  • Mendukung CORS (cross-origin resource sharing)
  • Mendukung JSONP (JSON with padding) dll

Silakan ikuti series tutorial untuk mengikutinya!

Persiapan

Untuk lebih mudah mengikuti tutorial ini, silakan menyiapkan komputer yang sudah terpasang PHP Composer, Docker Desktop dan IDE favorit, Visual Studio Code.

Buka aplikasi terminal/console/cmd dan buat folder baru dengan nama (misalnya) apiku. kemudian masuk ke dalamnya. cd apiku. Setelah itu buka folder dengan Visual Studio Code.

Kemudian buat satu file docker composer baru dengan isi sebagai berikut:

[sourcecode language=”yaml”]
version: ‘3’
services:
app:
image: panahbiru/php:8.0-apache
links:
– db
ports:
– "8000:80"
volumes:
– ./:/var/www

db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: "password"
MYSQL_USER: "admin"
MYSQL_PASSWORD: "password"
MYSQL_DATABASE: "apiku"
ports:
– "33065:3306"
volumes:
– ./mysqldb:/var/lib/mysql
[/sourcecode]

dimana kita akan membuat dua container docker, sebuah web server dengan PHP 8.0 dan database dengan MySQL 5.7. Silakan sesuaikan dengan kebutuhan (username, password, nama DB dll).

setelah disimpan, build stack docker tersebut dengan perintah docker-compose up -d. Tunggu sampai selesai ya, terutama jika image panahbiru/php:8.0-apache dan mysql:5.7 belum ada di docker kamu.

Instalasi Apiato

Untuk instalasi apiato, untuk nama aplikasi apiku, silakan lakukan perintah ini di cmd/terminal:

composer create-project apiato/apiato apiku

tunggu sampai proses download dependensinya selesai.

Migrasi Database

Langkah selanjutnya kita akan melakuan migrasi dan seeding database (pengisian database) dengan template yang sudah disediakan oleh apiato. Caranya, silakan masuk ke container webserver apiato dengan perintah ini:

docker exec -it f4aef310a717e0537837452c9e40d7be756926c4025986e73473ddc6dec61989 /bin/sh

ganti f4aef310a717e0537837452c9e40d7be756926c4025986e73473ddc6dec61989 dengan nama container kamu.

kemudian masuk ke /var/www dan lakukan migrate/seeding

cd /var/www
php artisan migrate
php artisan db:seed

setelah itu, kita akan membuat user admin yang sudah disediakan, menjadi super admin di platform apiato itu dengan perintah

php artisan apiato:permissions:toRole admin

sekarang, silakan buka browser dan tuju ke alamat port 8000 localhost (atau sesuai yang ada di docker-compose ya).

Silakan coba login ke sana dengan klik tombol login, dan masukkan username: admin@admin.com dan password: admin

langkah terakhir dari instalasi ini adalah membuat encryption key OAuth 2.0 untuk apiato ini. silakan jalankan perintah:

php artisan passport:install

dengan contoh hasil sebagai berikut:


root@f4aef310a717:/var/www# php artisan passport:install
Encryption keys generated successfully.
Personal access client created successfully.
Client ID: 1
Client secret: NLbsaTNxLj0OD2mx8PXaGJTr7k9ShdHZgVw4FjsC
Password grant client created successfully.
Client ID: 2
Client secret: N0R5ivJ4mjE62E8j1EnVfJUTMU0QXoCYsn71BUu1

segitu dulu ya gan, masuk nanti ke Part 2.

Terbaru

  • Apa Itu Fitur Gestur Baru di Pixel Watch 4? Ini Pengertian dan Perbedaannya
  • Belum Tahu? Inilah Cara Aman Login Binomo dan Trik Trading Buat Pemula Biar Nggak Boncos
  • Cara Mengatasi Error ‘Versi Diagnostik Belum Terbarui’ (Your current version of diagnostics is not up to date)
  • Cara Membuat Newsletter di Outlook 365
  • Sering Telepon di Tempat Berisik? Fitur Baru Expressive Call dari Google Bakal Jadi Penyelamat Kalian!
  • Google Pixel 10 Pro Akan Punya Integrasi Play Points Lebih Dalam
  • Stop Cara Kuno! Ini Trik Supaya Manajemen Karyawan Jadi Lebih Cepat dan Anti Ribet
  • Bug di Aplikasi Cuaca Wear OS Google: Update Tidak Ngaruh!
  • Samsung Kembangkan Sensor Kamera Baru Pakai Teknologi Global Shutter dan Efek Blur Bergerak
  • Cara Membuat Anggaran Otomatis di Excel
  • Baseus X1 Pro Kamera: Kamera Ringkas dengan Fitur Canggih dan Harga yang Menarik
  • Profil Sosmed Kalian Sepi? Gini Caranya Makeover Bio Biar Makin Dilirik Sama Netizen!
  • Cara Mengatasi Error ‘Disk is Full or Read-Only’
  • Belum Tahu? Inilah Trik Ampuh Atasi Error ‘We Were Unable To Create Your Notebook’ di OneNote
  • Trik Instagram Stories 2025: Ubah Viewer Jadi Loyal Follower dengan Fitur Sederhana Ini
  • Turning TikTok into a Money-Making Machine
  • Cara Ekstrak Driver Intel RST/VMD dari setuprst.exe: Panduan Lengkap
  • Pixel 8 dan 8 Pro Akan Punya Kamera Baru Resolusi 10.2MP, Hasil Lebih Baik di Kondisi Redup
  • Inilah Trik Website Kalian Lolos Core Web Vitals dan Ranking Naik
  • YouTube TV Uji Coba Fitur Tonton Rekaman Pertandingan Olahraga NFL,NBA, MLB Terbatas
  • Aawi Wireless Dua Habis Stok, Model Android Auto Tunggal Masih Diskon
  • Samsung Akan Luncurkan One UI 8.5 dengan Inspirasi ‘Liquid Glass’ yang Memukau
  • XBox Game Pass PC Tidak Bisa Address GPU ke Game
  • Your Pocket-Sized Doctors: 3 Health Apps Changing the Game on Android and iOS
  • Waymo Bawa Teknologi ‘Liquid Glass’ untuk Mobil Otonom
  • Rumor Google Akan Update UI Besar-besaran Desember 2025
  • Gemini Akan Masuk di Android Auto, Mobil Jadi Lebih Smart!
  • OpenAI Bantah Rencana Pasang Iklan di ChatGPT Berlangganan
  • Kenapa Komputer Sangat Panas Saat Gunakan Fitur Virtualisasi Hyper-V?
  • Apa itu Bug React2Shell? Sudah Serang Lebih dari 30 Organisasi dan 77.000 IP Address
  • Ini Dia ESP32 P4: IoT RISC-V dengan Layar AMOLED dan LoRa, Perangkat Handheld Inovatif
  • Apa Itu HealthyPi-6? Solusi Open Source untuk Akuisisi Biosignal
  • Jetson THOR Industrial PC: 25Gbe Networking dan Bisa Pakai Kamera GMSL2
  • Azul Systems Akuisisi Payara Java Server
  • PC Kentang Jadi Ngebut? Coba GRML 2025, Distro Debian Ringan dengan Kernel 6.17!
  • Apa Itu US National Framework for AI? Kepres Donald Trump Bikin Heboh Dunia AI
  • Kenapa Bisnis Properti & Real Estate Harus Pakai AI, Ini Alasannya!
  • BARU! Brave Browser Bakal Bisa Ngerjain Tugas Kalian Secara Otomatis Lewat Agentic AI!
  • Belum Tahu? Google Maps Bakal Makin Canggih Berkat Integrasi Gemini Visual Ini!
  • Siap-Siap! Tahun 2026 Gemini Bakal “Menjajah” Chrome, iPhone, sampai Smartwatch Kalian
  • Apa itu Data Breach Coupang? Pengertian dan Kronologi Kebocoran Data Terbesar di Korea Selatan
  • Apa Itu CVE-2018-4063? Pengertian Celah Keamanan Sierra Wireless AirLink yang Masuk Katalog CISA
  • Apa Itu Ashen Lepus? Kelompok Peretas yang Mengincar Instansi Pemerintah Timur Tengah
  • Pengertian Vulnerability WebKit Apple Terbaru: Apa Itu CVE-2025-43529 dan CVE-2025-14174?
  • Apa Itu Fake OSINT? Definisi dan Bahaya Repositori GitHub Palsu

©2025 emka.web.id | Design: Newspaperly WordPress Theme