Lumen Service App - Service Docs

 

Pada artikel kali ini kita akan melanjutkan membuat web service menggunakan PHP menggunakan framework Lumen dari Laravel. Untuk kali ini kita akan membuat Dokumentasi API untuk Lumen Service App.

Untuk membuat docs generator kita akan menggunakan swagger-ui (swagger ui)
Pertama kita akan mengistall swagger melalui composer dengan cara menjalankan sintak "composer require zircote/swagger-php" pada terminal

Lalu setelah itu kita akan buat console untuk menjalankan fungsi swagger , kita akan buat Membuat artisan command file. Buat file app/Console/Commands/SwaggerDocScanner.php.

<?php

namespace App\Console\Commands;
use Illuminate\Console\Command;

class SwaggerDocScanner extends Command
{
    protected $signature = 'swaggerdoc:scan';
  
    public function handle()
    {
        $path = dirname(dirname(__DIR__));

        $outputPath     = dirname(dirname(dirname(__DIR__))). DIRECTORY_SEPARATOR . 'public/swaggerdoc.json';

        $this->info('Scanning '.$path);
        $openApi = \OpenApi\scan($path);
        header('Content-Type: application/json');
        file_put_contents($outputPath$openApi->toJson());
        $this->info('Output '.$outputPath);
    }
}

?>

Buka file app/Console/Kernel.php, tambahkan code dibawah ini. 


Untuk menjalankan artisan command SwaggerDocScanner dan menggenerate docs, pada terminal/CommandPrompt jalankan command dibawah. Command ini akan membuat file public/swaggerdoc.json. Saat ini kalau dijalankan, command ini bakal error, karena kita belum mendefiniskan anotasi docs nya. "php artisan swaggerdoc:scan"


Untuk tampilan User Interface nya kita perlu mebuat file html di public folder. Buat file "public/api-docs.html, code nya seperti dibawah ini."

<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>LumenServiceApp - Documentation</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link rel='stylesheet' type='text/css' media='screen' href='https://unpkg.com/swagger-ui-dist@3.23.4/swagger-ui.css'>
</head>
<body>
    <div id="swagger-ui"></div>
    <script src="https://unpkg.com/swagger-ui-dist@3.23.4/swagger-ui-standalone-preset.js"></script>
    <script src="https://unpkg.com/swagger-ui-dist@3.23.4/swagger-ui-bundle.js"></script>
    <script>
        ( function(){
            SwaggerUIBundle({
                url : "swaggerdoc.json",
                dom_id : "#swagger-ui",
                presets: [
                    SwaggerUIBundle.presets.apis,
                    SwaggerUIStandalonePreset
                ],
                layout: "StandaloneLayout"
            });
        })();
    </script>
</body>
</html>

Pada browser buka http://localhost:8000/api-docs.html 


Membuat Dokumentasi API (Get Request) 

Kita akan membuat API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi API mengenai get Request, silahkan ikuti langkah-langkah dibawah ini: 

Buka file app/Http/Controllers/Controller.php, tambahkan code dibawah ini



Lalu tambahkan juga sintaks dibawah ini pada file "app/Http/Controllers/PostController.php"


Setiap kali anda mengubah anotasi docs, harus menjalankan command di bawah ini supaya bisa update docs nya. php artisan swaggerdoc:scan

Pada browser buka http://localhost:8000/api-docs.html

 

Lalu kita akan coba pertama kita akan menambahkan token terlebih dahulu


Lalu setelah itu kita coba authorize dan execute api tersebut


Sekian tutorial mengenai Lumen Service App - Service Docs, mohon maaf apabila banyak sekali kekurangan

Terima kasih
Next Post Previous Post
No Comment
Add Comment
comment url