laravel8自作メモAPIをswaggerで、コードから自動ドキュメント化してみた。思ってた自動化と違う!

laravel8自作メモAPIをswaggerで、コードから自動ドキュメント化してみた。思ってた自動化と違う!

参考URL
https://blog.asial.co.jp/2025

なんか自動的にソース解析してドキュメント化してくれるかと思ったら、ソースに自分でアノテーション(コメント)を書け!って事?
web.phpのresource()くらいのを期待してたのに~。
文句を言っていてもしょうがない、とりあえず一回やってみよう。

1, swaggerのパッケージをインストール

2, app/Http/Controllers/MemoController.phpにアノテーションを書く

3, APIドキュメント生成

.envファイルに、以下の記述をしておけばブラウザでアクセスする毎に自動生成してくれるらしい。
こういうのは、忘れないように先頭に記述するのが良いのだろうか・・・?
L5_SWAGGER_GENERATE_ALWAYS=true

4,ブラウザでアクセス
http://localhost/restful/public/api/documentation

まあ、一度作ってしまえば、RestfulAPIの使いまわしは出来るか?

いやいや、自動化の方法はあるはず!と探してたらあった
https://qiita.com/morimorim/items/e0a2c8e2011208d50278

でも、エラーになる…。

英語のQ&Aサイトを見てみると
https://github.com/mpociot/laravel-apidoc-generator/issues/796

composer.jsonのfakerphp/faker を削除して
“mpociot/documentarian”: “dev-master as 0.4.0”,
“mpociot/laravel-apidoc-generator”: “dev-master”,
を追記して、composer updateしたら大丈夫だった。って書いてあったけど
mpociot/laravel-apidoc-generator
のphpソースがphp8で予約語になったmatchを使っていてコケる~。
しょうがない、php7.4で最初からやり直そう。

http://localhost/apilaravel/public/docs で、なんか画面っぽいものが出てきた~!

見にくいので、json読み込んでswagger uiで表示出来ないの?と思って読み込んだら、出力されたjsonファイルがバージョン2だった…。
swagger ui2.0で読み込んでも、なんか表示されない!

う~ん、php artisan route:list の出力を加工した方が早い気がしてきた…。