Kelas Laravel: Studi Kasus RESTful API

Jul 15, 2024

Kelas Laravel: Studi Kasus RESTful API

Pengenalan

  • Nama: Eko Kurniawan
  • Pekerjaan: Technical Architect di E-commerce terbesar di Indonesia
  • Pengalaman: >12 tahun
  • Sharing di: Website & YouTube channel Programmer Zaman Now
  • Kontak & Sosial Media: Email, Telegram, LinkedIn, Facebook, Instagram, YouTube, Telegram channel, TikTok
  • Kelas pra-requisite: PHP, MySQL, OpenAPI, Laravel dasar

Studi Kasus: Kontak Management RESTful API

Fitur Utama

  1. User Management
    • Register User
    • Login User
    • Update User
    • Get User
    • Logout User
  2. Contact Management
    • Create Contact
    • Update Contact
    • Get Contact
    • Search Contact
    • Remove Contact
  3. Address Management
    • Create Address
    • Update Address
    • Get Address
    • List Address
    • Remove Address

User Management

User Data

  • username
  • password
  • name
  • token

API Endpoints

  1. Register User: POST /api/users/register
    • Request: username, password, name
    • Response: User info (excluding password), status code 201
  2. Login User: POST /api/users/login
    • Request: username, password
    • Response: User info, token
  3. Update User: PATCH /api/users/update
    • Request: name, password (optional)
    • Response: Updated user info
  4. Get User: GET /api/users/current
    • Request: Authorization header
    • Response: Current user info
  5. Logout User: DELETE /api/users/logout
    • Request: Authorization header
    • Response: Success status

Contact Management

Contact Data

  • first name
  • last name
  • email
  • phone

API Endpoints

  1. Create Contact: POST /api/contacts
    • Request: first name, last name, email, phone
    • Response: Contact info, status code 201
  2. Update Contact: PUT /api/contacts/{id}
    • Request: first name, last name, email, phone (optional)
    • Response: Updated contact info
  3. Get Contact: GET /api/contacts/{id}
    • Request: Authorization header
    • Response: Contact info
  4. Search Contacts: GET /api/contacts
    • Query Parameters: name, email, phone, page, size
    • Response: Paginated contact list
  5. Remove Contact: DELETE /api/contacts/{id}
    • Request: Authorization header
    • Response: Success status

Address Management

Address Data

  • Street
  • City
  • Province
  • Country
  • Postal code

API Endpoints

  1. Create Address: POST /api/contacts/{contact_id}/addresses
    • Request: Street, City, Province, Country, Postal code
    • Response: Address info, status code 201
  2. Update Address: PUT /api/contacts/{contact_id}/addresses/{address_id}
    • Request: Street, City, Province, Country, Postal code
    • Response: Updated address info
  3. Get Address: GET /api/contacts/{contact_id}/addresses/{address_id}
    • Request: Authorization header
    • Response: Address info
  4. List Addresses: GET /api/contacts/{contact_id}/addresses
    • Request: Authorization header
    • Response: List of addresses
  5. Remove Address: DELETE /api/contacts/{contact_id}/addresses/{address_id}
    • Request: Authorization header
    • Response: Success status

Implementasi dan Testing

Menyiapkan Database

  1. Buat database belajar_laravel_resful_api di MySQL
  2. Konfigurasi .env file untuk database connection
  3. Jalankan php artisan migrate untuk membuat tabel
  4. Tambahkan user, contact, dan address models dengan relasi yang sesuai
  5. Implementasi middle ware untuk cek token user
  6. Tambahkan unit tests untuk setiap endpoint dengan skenario sukses dan gagal
  7. Gunakan client tools (Postman, Insomnia, atau HTTP client) untuk testing manual API endpoints

Testing Manual

  1. Gunakan token yang didapat dari endpoint login untuk mengakses API lain
  2. Cek hasil dari setiap endpoint di client tool untuk memastikan API bekerja dengan benar
  3. Lakukan pengujian dengan berbagai skenario seperti data valid, data tidak valid, dan permintaan tanpa token

Kesimpulan

  • Kelas ini fokus pada pembuatan RESTful API dengan Laravel melalui studi kasus kontak management
  • Best practice meliputi implementasi unit testing dan testing manual dengan client tools
  • Materi terus diupdate sesuai dengan perkembangan Laravel
  • Disarankan untuk eksplorasi studi kasus lain seperti to-do list, blog, user registration, dll.

Referensi Lanjutan

  • Programmer Zaman Now website dan YouTube channel untuk video learning lainnya
  • Dokumentasi Laravel: https://laravel.com/docs

Semoga sukses dalam belajar Laravel dan menerapkan pengetahuan untuk membuat aplikasi dunia nyata!