Ringkasan Proyek

Library API adalah sistem backend RESTful yang dikembangkan menggunakan Laravel 12 untuk mengelola perpustakaan digital. API ini menyediakan fungsionalitas untuk mengelola data buku, penulis, penerbit, kategori, dan sistem peminjaman.

Saya merancang dan mengimplementasikan seluruh arsitektur sistem, termasuk skema database, endpoint API, sistem otentikasi menggunakan Laravel Passport, serta dokumentasi API menggunakan Laravel Scramble dan Postman.

Linimasa

Okt 2025 - Okt 2025

Tipe Proyek

Proyek Pribadi

Pengembang Backend & API
Pratinjau Library API

Library API

Sistem Manajemen Perpustakaan
(Screnshot Laravel Scamble)

Fitur API

Fungsionalitas yang dikembangkan untuk sistem manajemen perpustakaan

Arsitektur Database

Merancang skema database MySQL dengan tabel-tabel terrelasi untuk menyimpan data buku, penulis, penerbit, kategori, peminjaman, dan pengguna. Mengimplementasikan foreign keys, indexes, dan constraints untuk menjaga integritas data.

Otentikasi OAuth2

Mengimplementasikan sistem otentikasi yang aman menggunakan Laravel Passport dengan OAuth2. Mendukung grant type password untuk aplikasi first-party dan client credentials untuk aplikasi third-party.

Manajemen Buku

Mengembangkan sistem CRUD untuk mengelola data buku, kategori, penulis, penerbit, dan peminjaman.

Endpoint API

Kumpulan endpoint RESTful yang tersedia dalam Library API

Endpoint Otentikasi

POST /api/oauth/token

Mendapatkan access token menggunakan OAuth2 Password Grant

POST /api/register

Registrasi pengguna baru

POST /api/logout

Logout dan mencabut token

GET /api/user

Mendapatkan data pengguna yang sedang login

Endpoint Buku

GET /api/books

Mendapatkan daftar buku dengan pagination dan filtering

POST /api/books

Membuat buku baru

GET /api/books/{id}

Mendapatkan detail buku

PUT /api/books/{id}

Memperbarui data buku

DELETE /api/books/{id}

Menghapus buku

Endpoint Penulis

GET /api/authors

Mendapatkan daftar penulis

POST /api/authors

Membuat penulis baru

GET /api/authors/{id}

Mendapatkan detail penulis

PUT /api/authors/{id}

Memperbarui data penulis

DELETE /api/authors/{id}

Menghapus penulis

Endpoint Peminjaman

GET /api/loans

Mendapatkan daftar peminjaman

POST /api/loans

Membuat peminjaman baru

GET /api/loans/{id}

Mendapatkan detail peminjaman

PUT /api/loans/{id}

Mengembalikan buku yang dipinjam

Implementasi Teknis

Arsitektur backend dan teknologi yang diterapkan

Arsitektur Backend

Saya merancang dan mengimplementasikan seluruh sistem:

1

Perancangan Database

Membuat skema MySQL yang optimal dengan tabel-tabel terrelasi untuk buku, penulis, penerbit, kategori, peminjaman, dan pengguna

2

Pengembangan API

Membangun RESTful API dengan 20+ endpoint menggunakan Laravel

3

Otentikasi OAuth2

Mengimplementasikan otentikasi menggunakan Laravel Passport

4

Validasi Data

Menerapkan validasi request yang ketat dan penanganan error yang konsisten

5

Dokumentasi API

Membuat dokumentasi API yang komprehensif menggunakan Laravel Scramble dan Postman

Tumpukan Teknologi

Laravel 12

Kerangka kerja PHP untuk pengembangan API

MySQL

Database relasional untuk penyimpanan data

Dokumentasi API

Dokumentasi komprehensif untuk memudahkan penggunaan API

Dokumentasi dengan Laravel Scramble

Menggunakan Laravel Scramble untuk menghasilkan dokumentasi API secara otomatis dari kode. Dokumentasi ini menyediakan:

Deskripsi Endpoint

Setiap endpoint didokumentasikan dengan method, URL, dan deskripsi

Parameter & Validasi

Mendokumentasikan parameter yang diperlukan dan aturan validasinya

Response Format

Menampilkan format response untuk setiap endpoint

Authentication

Menjelaskan cara otentikasi menggunakan OAuth2

Koleksi Postman

Menyediakan koleksi Postman yang lengkap untuk testing API:

Environment Variables

Konfigurasi environment untuk base URL dan authentication tokens

Test Scripts

Script otomatis untuk testing response status dan data

Example Requests

Contoh request untuk setiap endpoint dengan data yang valid

Documentation

Dokumentasi terstruktur dalam format Postman

Contoh Penggunaan API

Request Authentication

POST /api/oauth/token
Content-Type: application/json

{
  "grant_type": "password",
  "client_id": "your-client-id",
  "client_secret": "your-client-secret",
  "username": "user@example.com",
  "password": "password",
  "scope": "*"
}

Response Success

{
  "token_type": "Bearer",
  "expires_in": 31622400,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni...",
  "refresh_token": "def50200e9a7c8d7c7a7c8d7c7a7c8d7..."
}
Lihat Dokumentasi Proyek