Hallo sobat Newbie, kali ini saya akan membahas service docs. Saat ini API yang kita buat belum memiliki dokumentasi. Kita akan membuat dokumentasi bagaimana cara mengakses API yang telah kita buat.

Mempersiapkan Docs Generator
Untuk membuat docs generator kita akan menggunakan swagger-ui https://swagger.io/tools/swagger-ui/. Pertama kita install terlebih dahulu swagger-php plugins nya menggunakan composer seperti berikut.

composer require zircote/swagger-php
Selanjutnya membuat artisan command file. 
Buat file app/Console/Commands/SwaggerDocScanner.php

Buka file app/Console/Kernel.php, tambahkan code berikut pada variabel commands.

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

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

Jalankan servernya, kemudian akses endpoint http://localhost:8000/api-docs.html
php -S localhost:8000 -t public
Maka tampilan akan seperti berikut.
Screenshot_26.png

Membuat Dokumentasi API (Get Request)
Kita akan membuat API dokumentasi untuk endpoint /register. Buka file app/Http/Controllers/Controller.php, tambahkan code dibawah ini.

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

Pada terminal/CommandPrompt jalankan command di bawah ini.
php artisan swaggerdoc:scan
Setiap kali anda mengubah anotasi docs, harus menjalankan command tersebut supaya bisa update docs nya.

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

Jika di click pada button GET, maka tampilanya akan seperti berikut.

Silahkan dicoba dengan mengklik button Try it out.

Membuat Dokumentasi API (Post Request)
Kali ini kita akan membuat API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi API mengenai Post Request, buka file App/Http/Controllers/AuthController.php dan tambahkan code berikut.



Pada terminal/CommandPrompt jalankan command di bawah ini. Setiap kali anda mengubah anotasi docs, harus menjalankan command di bawah ini supaya bisa update docs nya.
php artisan swaggerdoc:scan
 Akses kembali endpoint http://localhost:8000/api-docs.html

Jika di click pada button POST, maka tampilannya akan seperti berikut.


Membuat dokumentasi untuk semua endpoint
Pertama kita akan membuat dokumentasi untuk endpoint user login, tambahkan script berikut pada AuthController.php.

Jalankan command berikut pada terminal.

php artisan swaggerdoc:scan
Akses kembali http://localhost:8000/api-docs.html, maka akan muncul endpoint untuk user login.

Tambahkan script berikut pada file app/Http/Controllers/Controller.php untuk menambahkan fitur authorization agar semua endpoint post yang akan kita akses perlu mengirimkan token terlebih dahulu.

Jalankan command berikut pada terminal.
php artisan swaggerdoc:scan
Maka ketika mengakses http://localhost:8000/api-docs.html, akan muncul button Authorize sebagai akses token yang kita gunakan untuk mengakses endpoint.

Selanjutnya kita akan membuat dokumentasi untuk function show tambahkan script berikut pada Public\PostsController.php.


Jalankan command berikut pada terminal.
php artisan swaggerdoc:scan
Kemudian akses kembali http://localhost:8000/api-docs.html, maka akan muncul endpoint baru.


Dokumentasi untuk endpoint /posts
Sebelumnya kita baru membuat dokumentasi pada endpoint /public/posts, selanjutya kita akan akan membuat dokumentasi untuk endpoint /posts, tambahkan script2 berikut pada setiap function di controller App\Http\Controllers\PostsController.php.








Jalankan command berikut pada terminal.
php artisan swaggerdoc:scan

Kemudian akses kembali http://localhost:8000/api-docs.html, maka akan muncul endpoint baru.