Tutorial PHP Lumen Service Docs
Dalam blog ini akan dijelaskan mengenai Tutorial PHP Lumen Service Docs.
Mempersiapkan Docs Generator
Untuk membuat docs generator kita akan menggunakan swagger-ui. Silahkan ikuti langkah-langkah
dibawah ini:
Install swagger-php plugins. Pada terminal/CommandPrompt ketik command dibawah ini.
composer require zircote/swagger-php
Buat file app/Console/Commands/SwaggerDocScanner.php. codenya seperti berikut :
Buka file app/Console/Kernel.php, tambahkan code dibawah ini. Line 17.
Untuk tampilan User Interface nya kita perlu mebuat file html di public folder. Buat file
public/api-docs.html, code nya seperti dibawah ini.
Run Lumen Servernya
Jalankan pada browser alamat http://localhost:8000/api-docs.html. Maka tampilanya akan seperti ini
Membuat Dokumentasi API (Get Request)
Untuk membuat dokumentasi API mengenai get Request, ikuti langkah-langkah dibawah ini:
Buka file app/Http/Controllers/Controller.php, tambahkan code dibawah ini. Line 6-20.
Buka file app/Http/Controllers/Public/PostsController.php, tambahkan code dibawah ini. Line 11-25.
Jalankan pada browser http://localhost:8000/api-docs.html. Jika diklik button Get maka tampilannya akan seperti ini.
Membuat Dokumentasi API (Post Request)
Untuk membuat dokumentasi API mengenai Post Request, ikuti langkah-langkah dibawah ini:
Buka file app/Http/Controllers/AuthController.php, tambahkan code dibawah ini. Line 10-43.
Jalankan pada browser http://localhost:8000/api-docs.html. Jika diklik button POST maka tampilannya akan seperti ini.
Selesai.
Mempersiapkan Docs Generator
Untuk membuat docs generator kita akan menggunakan swagger-ui. Silahkan ikuti langkah-langkah
dibawah ini:
Install swagger-php plugins. Pada terminal/CommandPrompt ketik command dibawah ini.
composer require zircote/swagger-php
Buat file app/Console/Commands/SwaggerDocScanner.php. codenya seperti berikut :
<?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. Line 17.
Untuk tampilan User Interface nya kita perlu mebuat file html di public folder. Buat file
public/api-docs.html, code nya seperti dibawah ini.
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My Api Documentation</title>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@3/swagger-ui.css">
</head>
<body>
<div id="swagger-ui"></div>
<script src="//unkg.com/swagger-ui-dist@3/swagger-ui-stanalone-preset.js"></script>
<script src="//unkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
<script>
(function (){
SwaggerUIBundle({
url: "swaggerdoc.json",
dom_id: '#swagger-ui',
presents: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
layout: "StandaloneLayout"
});
})();
</script>
</body>
</html>
Run Lumen Servernya
Jalankan pada browser alamat http://localhost:8000/api-docs.html. Maka tampilanya akan seperti ini
Membuat Dokumentasi API (Get Request)
Untuk membuat dokumentasi API mengenai get Request, ikuti langkah-langkah dibawah ini:
Buka file app/Http/Controllers/Controller.php, tambahkan code dibawah ini. Line 6-20.
Buka file app/Http/Controllers/Public/PostsController.php, tambahkan code dibawah ini. Line 11-25.
Jalankan pada browser http://localhost:8000/api-docs.html. Jika diklik button Get maka tampilannya akan seperti ini.
Membuat Dokumentasi API (Post Request)
Untuk membuat dokumentasi API mengenai Post Request, ikuti langkah-langkah dibawah ini:
Buka file app/Http/Controllers/AuthController.php, tambahkan code dibawah ini. Line 10-43.
Jalankan pada browser http://localhost:8000/api-docs.html. Jika diklik button POST maka tampilannya akan seperti ini.
Selesai.


Komentar
Posting Komentar