Membuat Dokumentasi API dengan Scramble pada Laravel

Andruw
4 min readSep 24, 2023

--

Mencoba Laravel OpenAPI (Swagger) document generator Scramble

Photo by Mel Poole on Unsplash

Scramble adalah salah satu API documentation generator yang bisa digunakan pada Laravel untuk membuat dokumentasi API dari OpenAPI (Swagger). Scramble akan memindai setiap API endpoint yang ada pada routes lalu membuatkan dokumentasi dari API yang ada.

Pengenalan

OpenAPI Specification (OAS)

OAS adalah format deskripsi API untuk RESTful API. OAS memungkinkan untuk melakukan deskripsi dari seluruh bagian API, meliputi :

  1. Endpoint yang tersedia dan operasinya (GET, POST dan lainnya)
  2. Parameter operasi untuk input dan output untuk setiap operasi
  3. Metode autentikasi
  4. Informasi kontak, lisensi dan informasi lainnya

Swagger

Swagger adalah serangkaian tools yang bisa digunakan untuk membantu melakukan desain, dokumentasi dan mengkonsumsi REST API dengan mengimplementasikan spesifikasi yang diterapkan dalam OpenAPI (OAS).

Scramble

Scramble adalah salah generator dokumentasi untuk OpenApi (Swagger) untuk Laravel. Dengan menggunakannya kita bisa membuat dokumentasi API tanpa perlu menuliskan banyak anotasi untuk endpoint yang dibuat.

Implementasi

Instalasi

Untuk menggunakannya, kita perlu melakukan instalasi dua package yang diperlukan. Selain itu karena kita akan memberikan beberapa konfigurasi tambahan, maka perlu untuk melakukan publish file konfigurasi dari Scramble.

  1. Instalasi package Scramble.
composer require dedoc/scramble

2. Instalasi package Database Abstraction Layer (DBAL).

composer require doctrine/dbal

3. Publish file konfigurasi.

php artisan vendor:publish --provider="Dedoc\Scramble\ScrambleServiceProvider" --tag="scramble-config"

Authentication API

Untuk keperluan endpoint autentikasi, kita akan membuat controller dan Form Request Validator.

  1. Authentication Controller
Authentication Controller

2. Login Form Request

Login Form Request

2. Register Form Request

Register Form Request

Category API

Untuk keperluan endpoint Category, kita akan membuat controller, Form Request Validator dan API Resource.

  1. Category Controller
Category Controller

2. Category Form Request

Category Form Request

3. Category Resource

Category Resource

Post API

Untuk keperluan endpoint Post, kita akan membuat controller, Form Request Validator, Query Param Validator dan API Resource.

  1. Post Controller
Post Controller

2. Post Form Request

Post Form Request

3. Post Query Parameter

Post Query Parameter

4. Post Resource

Post Resource

Konfigurasi

Setelah membuat endpoint yang diperlukan, selanjutnya perlu untuk menambahkan route agar bisa terbaca oleh Scramble. Lalu kita juga akan menambahkan deskripsi mengenai API pada file konfigurasi Scramble. Dan terakhir perlu menambahkan konfigurasi untuk header autentikasi pada AppServiceProvider.

  1. API routes
Route API

2. Scramble Config

Scramble Config

3. Authentication Header

App Service Provider

Hasil

Home

Berikut adalah dokumentasi yang dibuat berdasar konfigurasi Scramble.

  1. Overview
Overview

Authentication API

Berikut adalah dokumentasi yang dibuat untuk Authentication API.

  1. Login
Login API

2. Register API

Register API

3. Logout API

Logout API

Category API

Berikut adalah dokumentasi yang dibuat untuk Category API.

  1. List Category
List Category API

2. Create Category

Create Category API

3. Show Selected Category

Show Category API

4. Update Category

Update Category API

5. Delete Category

Delete Category API

Post API

Berikut adalah dokumentasi yang dibuat untuk Post API.

  1. List Post
List Post API

2. Create Post

Create Post API

3. Show Selected Post

Show Post API

4. Update Post

Update Post API

5. Delete Post

Delete Post API

Resource

Berikut adalah dokumentasi yang dibuat berdasarkan API resource.

  1. Category Resource
Category Resource

2. Post Resource

Post Resource

Penutup

Kata Penutup

Penggunaan Scramble sebagai API documentation generator bisa meringkas waktu yang diperlukan untuk menuliskan anotasi untuk dokumentasi API. Namun, hingga saat ini belum menemukan cara untuk menambahkan header selain untuk autentikasi. Selain itu, untuk membuat dokumentasi dari query paramater, perlu ditambahkan Form Request dan hanya bisa untuk endpoint dengan HTTP request method GET. Semoga tulisan kali ini bermanfaat. Sampai jumpa di tulisan selanjutnya. Salam.

Baca Lebih Lanjut

  1. OpenAPI Specification
  2. Getting Started with OAS
  3. Scramble OpenAPI Document Generator

--

--

Andruw
Andruw

Written by Andruw

PHP/Laravel Developer | Web Tech Enthusiast

No responses yet