Dokumentasi API L5-Swagger pada Laravel

Haloo kreatif reader.. kali ini aku mau bahas tentang Dokumentasi API L5 Swagger pada Laravel.

Dokumentasi API adalah dokumentasi yang berisi kumpulan panduan penggunaan API terhadap suatu program atau aplikasi. Dokumentasi API ini digunakan sebagai acuan untuk mendeskripsikan API secara menyeluruh sehingga penggunaan API dapat mudah dipahami oleh seluruh tim pengembang ataupun pengembangan lain untuk pemeliharaan aplikasi selanjutnya.

Salah satu tools  yang dapat digunakan untuk mendokumentasikan API adalah Swagger. Swagger merupakan framework populer yang digunakan untuk OpenAPI Specification (OAS). Penggunaan swagger dapat menyederhanakan proses dokumentasi API secara  interaktif. Dokumentasi yang dihasilkan dapat dengan mudah dipahami oleh pengguna teknis maupun non-teknis.

Saat ini swagger sudah dapat digunakan langsung pada framework Laravel dalam bentuk package L5 Swagger yang bekerja dengan mengadaptasi swagger-php dan swagger-ui.

Untuk melakukan instalasi dan setup L5 Swagger pastikan laravel dan composer sudah terinstall di laptop pengguna. Setelah itu ikuti langkah-langkah instalasi package l5swagger berikut ini:

1. Install package l5 swagger melalui composer

composer requires darkonline/l5-swagger tymon/jwt-auth

2. Publish file konfigurasi L5Swagger

php artisan vendor: publish --provider "L5Swagger\L5SwaggerServiceProvider"

3. Konfigurasi Swagger
Buka file config/l5-swagger.php dan sesuaikan pengaturan misalnya dengan mengonfigurasi path API documentation, keamanan, dan lainnya.

4. Tambah anotasi swagger ke Route dan Controllers
Contoh penggunaan anotasi pada route:

/**
* @OA\Get(
* path="/api/user",
* summary="Get a list of users",
* tags={"Users"},
* @OA\Response(response=200,
* description="List of users",
* ),
* )
*/

Contoh penggunaan anotas pada contollers

/**
* @OA\Info(
* title="Swagger with Laravel",
* version="1.0.0",
* )
* @OA\SecurityScheme(
* type="http",
* securityScheme="bearerAuth"
* scheme="bearer"
* bearerFormat="JWT"
* )
*/

5. Generate dokumentasi Swagger

php artisan l5-swagger:generate

Perintah ini akan menghasilkan file JSON swagger dan secara default menyimpannya di direktori publik.

6. Akses halaman swagger dengan mengunjungi url yang telah dibuat pada file konfigurasi. Contohnya ‘http://your-app-url/api/documentation’

Berikut ini contoh tampilan hasil generate dokumentasi swagger:

swagger-ui-1-768x363

Dengan penggunaan l5 swagger yang mudah diimplementasi ini, diharapkan dapat mendorong kolaboarasi yang lebih baik dan mempercepat pengembangan API pada aplikasi laravel yang dibuat.


Referensi:
Upadhyay, Mayur. (2024, January 04). Laravel Swagger Integration: A Step-by-Step-Guide. WPWEB Infotech.
Kolodii, Ivan. (2020, May 10). How to write Swagger Documentation for Laravel API. Tips & Example. Medium. 

API Documentation using Scramble

screenshot_14

Halo, Kreatif Reader! Pada artikel ini, saya akan membahas mengenai salah satu tools untuk mendokumentasian API, yaitu Scramble. Sebelum kesana, mari kita pahami terlebih dahulu apa itu API serta mengapa API perlu didokumentasikan dengan baik.

API (Application Programming Interface) merupakan interface yang dibangun oleh tim pengembang untuk menyimpan function atau aturan sehingga memungkinkan adanya interaksi dan komunikasi antar aplikasi yang berbeda. Sederhananya, API dapat memudahkan developer untuk mengkonsumsi data dari sistem lain yang terintegrasi, tanpa harus menulis ulang code.

API sendiri memiliki beberapa jenis arsitektur, salah satunya adalah REST API. Pada gambar berikut ini, adalah ilustrasi cara kerja REST API sebagai jembatan antar aplikasi atau platform.rest-api-model

Seperti yang telah disebutkan sebelumnya, bahwa API berisikan function atau aturan, maka perlu dilakukan pendokumentasian yang baik, agar developer dapat dengan mudah memahami fungsi serta cara penggunaan setiap baris kodenya. Idealnya, dokumentasi API berisikan informasi detail API, termasuk fungsi, parameter, tipe pengembalian, kelas, dan lainnya, dalam urutan yang logis.

Salah satu tools yang dapat digunakan untuk dokumentasi API adalah Scramble. Mengutip dari dokumentasi resminya, Scramble merupakan generator otomatis untuk mendokumentasikan API pada Laravel. Scramble menggunakan format penulisan OpenAPI 3.1.0, dimana penyajiannya direpresentasikan menggunakan format JSON atau YAML, seperti contoh di bawah ini.

{
 "name": "John Doe",
 "email": "john.doe@example.com",
 "password": "password"
}

Dokumentasi yang dihasilkan kemudian dibungkus dengan User Interface Stoplight Elements seperti gambar berikut ini:

demo_scramble Continue reading API Documentation using Scramble

Integrasi Laravel Dengan No SQL

Hallo Kreatif Reader…. Kali ini, aku mau sharing nih mengenai integrasi laravel dengan No SQL. Semoga bermanfaat

Laravel adalah kerangka pengembangan web populer untuk PHP. Laravel menawarkan banyak default dan menyediakan struktur kode yang mudah dipahami dan cepat digunakan untuk mengimplementasikan aplikasi web dan API. MongoDB memiliki integrasi resmi dengan Laravel, dan paket terseut tersedia di GitHub.

Integrasi Laravel dengan basis data NoSQL seperti MongoDB dapat dilakukan dengan cukup mudah, karena Laravel mendukung beberapa driver basis data NOSQL. MongoDB adalah salah satu pilihan populer untuk basis data NoSQL, dan kita akan fokus pada integrasi Laravel dengan MongoDB.

Berikut adalah langkah – langkah  umum untuk integrasi Laravel dengan MongoDB:

1. Instalsi MongoDB dan Ekstensi PHP MongoDB:

Pastikan MongiDB telah terinstal di server anda

Instal ekstensi PHP MongoDB dengan menggunakan Composer:

composer require jenssegers/mongodb

2. Konfigurasi koneksi ke MongoDB

Buka berkas ‘config/database.php’ dan tambahkan konfigurasi untuk mongoDB:

'mongodb' => [
 'driver' => 'mongodb',
 'host' => env('DB_HOST', 'localhost'),
 'port' => env('DB_PORT', 27017),
 'database' => env('DB_DATABASE', 'your_database'),
 'username' => env('DB_USERNAME', 'your_username'),
 'password' => env('DB_PASSWORD', 'your_password'),
 'options' => [
 'database' => 'admin',
 ],
],

Sesuaikan nilai ‘database’, ‘username’, dan ‘password’ sesuai dengan konfigurasi MongoDB

3. Atur koneksi pada Berkas.env

Sesuaikan nilai ‘DB_Connection’ dan kredensial MongoDB pada berkas ‘.env':

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

4. Gunakan model Eloquent MongoDB:

Buat model Eloquent untuk menggunakan MongoDB. Misalkan, jika anda memiliki model ‘Book’, buat file ‘Book.php':

<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Book extends Eloquent
{
 protected $connection = 'mongodb';
 protected $collection = 'books';
 protected $fillable = ['title', 'author', 'published_at'];
}

Pastikan untuk menyesuaikan nilai – nilai seperti ‘$collection’ sesuai dengan struktur database anda.

5. Migrasi dan penggunaan model:

Buat migrasi untuk struktur MongoDB jika diperlukan:

php artisan make:migration create_books_collection

Gunakan model Eloquent seperti menggunakan model biasa pada Laravel

Referensi
Judul Buku: Belajar Cepat Database NoSQL, Menggunakan Document Priented Databse (MongoDB) pada Pengaplikasian Big Data
Penulis: Agit Amrullah &Kusnawi
Penerbit: Penerbit ANDI
MongoDB

PHPUnit Testing pada Laravel

1200px-phpunit_logo-svg_-1024x413

Hallo kreatif reader, pada kesempatan kali ini aku mau sharing dari artikel yang udah aku baca..

Apa sih itu PHPUnit?
PHPUnit adalah kerangka pengujian (testing framework) untuk bahasa pemrograman PHP yang bertujuan untuk memastikan bahwa setiap bagian kecil dari program berfungsi sebagaimana mestinya. Dengan menggunakan PHPUnit, developer PHP dapat meningkatkan kualitas software dengan mengidentifikasi dan memperbaiki bug lebih awal dalam siklus pengembangan.

Adapun tahapan-tahapan yang dilakukan dalam automated testing menggunakan PHPUnit adalah sebagai berikut:

1. Instalasi software testing menggunakan PHPUnit yang terintegrasi dengan framework laravel untuk pengembangan aplikasi. Ini dapat dilakukan menggunakan Composer. Sebelumnya pastikan Composer telah diinstal, kemudian buka terminal dan eksekusi perintah berikut:

composer require --dev phpunit/phpunit ^9.6

2. Menuliskan kode pengujian pada PHPUnit dengan nama file pengujian (misalnya: MyMathTest.php) untuk menguji fitur yang telah ditentukan sesuai dengan kebutuhan output yang diharapkan. Berikut contoh kode pengujian pada PHPUnit:

// File: MyMathTest.php

use PHPUnit\Framework\TestCase;

class MyMathTest extends TestCase {
 public function testAdd() {
 $math = new MyMath();
 $result = $math->add(3, 5);
 $this->assertEquals(8, $result);
 }

 public function testSubtract() {
 $math = new MyMath();
 $result = $math->subtract(8, 3);
 $this->assertEquals(5, $result);
 }
}

3. Menjalankan PHPUnit untuk mengetahui hasil pengujian (lulus atau tidak), lakukan perintah berikut melalui terminal dari direktori proyek:

vendor/bin/phpunit MyMathTest.php

Jika memiliki banyak file pengujian, dapat menjalankan semua pengujian dengan perintah berikut:

vendor/bin/phpunit

4. Jika fitur yang diuji lulus, status hasil pengujian menjadi “passed”.
5. Jika fitur yang diuji tidak lulus, maka PHPUnit akan menampilkan pesan error.
Catatan: untuk mempermudah deteksi dan eksekusi pengujian oleh PHPUnit, sebaiknya developer memberikan nama file pengujian dengan format “nama class” dan akhiran “.php”

Berikut ini adalah beberapa fitur PHPUnit dengan keunggulannya:
1. Pengujian Unit Otomatis: Fitur ini membantu dalam mendeteksi kesalahan dan memastikan bahwa perubahan kode tidak merusak fungsionalitas yang ada.
2. Pelaporan Hasil: PHPUnit memberikan laporan hasil pengujian yang jelas dan terstruktur. Ini membantu developer untuk dengan cepat mengidentifikasi masalah dan memperbaikinya.
3. Pengujian Fungsionalitas dan Integrasi: PHPUnit juga mendukung pengujian fungsionalitas dan integrasi, untuk menguji sejauh mana berbagai komponen bekerja bersama.
4. Kemampuan Pengujian Paralel: PHPUnit mendukung pengujian paralel, yang dapat menjalankan beberapa unit pengujian secara bersamaan untuk meningkatkan efisiensi.

Sehingga dapat disimpulkan, apabila tim developer sudah menggunakan PHPUnit untuk pengujian otomatis maka dapat mengurangi error dan menghemat waktu dalam pengembangan aplikasi.

Referensi:
[1] Zhang Tao and He Lei, 2018, Design and Implementation of HTTP Interface Automation Test Framework PHPUnit, Department of Informatics, Beijing University of Technology, China, Atlantis Press.
[2] PHPUnit Testing.

Pemahaman & Manfaat Penggunaan Migrasi dan Seeder pada Laravel

mengenal-migra

Halo kreatif readers, pada kesempatan kali ini kita akan mengenal dan memahami manfaat penggunaan migrasi dan seeder yang ada pada Laravel.

Seperti yang kita ketahui bahwa Laravel, sebagai kerangka kerja PHP yang populer, menyediakan dua fitur kunci, yaitu migration dan seeder. Migrasi (migration) memungkinkan pengembang untuk mengelola struktur database dengan mudah, sementara seeder memfasilitasi pengisian data awal.

Migrasi pada Laravel

Migrasi adalah cara Laravel mengelola perubahan struktur database. Dengan migrasi, pengembang dapat membuat dan memodifikasi tabel database tanpa harus berurusan dengan SQL langsung. Setiap migrasi adalah file PHP yang berisi instruksi untuk membuat atau memodifikasi tabel database, kemudian dijalankan dengan perintah ‘Php artisan migrate’. Dibawah ini merupakan contoh file PHP yang berisi migrasi.

migrasi

Seeder pada Laravel

Seeder digunakan untuk mengisi database dengan data awal. Seeder adalah file PHP yang berisi kode untuk menyisipkan data ke dalam tabel. Ini berguna untuk menguji aplikasi atau mengisi database dengan data awal untuk pengembangan. Kemudian dijalankan dengan perintah ‘php artisan db:seed’. Dibawah ini merupakan contoh file PHP yang berisi seeder.

seeder

Integrasi Migrasi dan Seeder

Pada umumnya, setelah membuat tabel menggunakan migrasi, seeder digunakan untuk mengisi tabel tersebut dengan data awal. Pengguna dapat menjalankan keduanya dengan satu perintah menggunakan ‘php artisan migrate –seed’. Dengan menggunakan migrasi dan seeder, pengembang dapat dengan mudah mengelola struktur database dan menyediakan data awal untuk pengujian atau pengembangan.

Manfaat Migrasi dan Seeder pada Laravel

Penggunaan migrasi dan seeder dalam pengembangan web dengan Laravel membawa sejumlah manfaat yang signifikan, Berikut adalah beberapa manfaat penggunaan migrasi dan seeder pada laravel.

1. Manajemen Struktur Database yang Efisien

Migrasi memungkinkan pengembang untuk membuat dan mengelola struktur database secara efisien. Dengan menyediakan file migrasi, perubahan struktur dapat dilakukan secara terorganisir tanpa perlu menyusun perintah SQL secara manual. Ini mempermudah tim pengembangan dalam mengelola skema database.

2. Rekam Historis Perubahan Database

Migrasi mencatat histori perubahan struktur database. Setiap migrasi mewakili langkah-langkah yang diambil untuk membuat atau memodifikasi tabel. Hal ini memungkinkan pengembang untuk melacak dan mengelola versi database, membantu dalam pengembangan kolaboratif dan pemeliharaan sistem.

3. Kemudahan Penyesuaian dengan Tim Pengembangan

Migrasi menyederhanakan upaya kolaborasi tim pengembangan. Setiap perubahan dalam struktur database terdokumentasi melalui migrasi, memungkinkan anggota tim untuk dengan mudah menyelaraskan langkah-langkah pengembangan mereka. Hal ini mengurangi risiko kesalahan yang mungkin muncul ketika melakukan pengelolaan skema database secara manual.

4. Isi Data Awal untuk Pengembangan dan Uji

Seeder memungkinkan pengisian data awal ke dalam tabel, mempermudah pengujian dan pengembangan. Dengan menggunakan seeder, pengembang dapat membuat dataset awal yang dibutuhkan untuk menguji fungsionalitas aplikasi atau mengembangkan fitur baru. Ini mendukung pengembangan yang lebih cepat dan efisien.

5. Konsistensi Server Pengembangan dan Produksi

Migrasi dan seeder membantu menjaga konsistensi antara server pengembangan dan produksi. Dengan menjalankan migrasi dan seeder di kedua server tersebut, pastikan bahwa struktur database dan data awal dijaga konsistensinya, mengurangi potensi masalah saat merilis ke produksi.

6. Pemeliharaan dan Pembaruan Sistem yang Aman

Penggunaan migrasi memungkinkan pemeliharaan dan pembaruan sistem yang lebih aman. Dengan memanfaatkan migrasi, perubahan pada struktur database dapat diuji terlebih dahulu di lingkungan pengembangan sebelum diaplikasikan ke lingkungan produksi. Ini membantu mencegah kemungkinan kegagalan.

Referensi :