メサイア・ワークス

既存のmysql(create table)からOpenAPI3のCRUD仕様書(yaml)を自動生成する

既存のmysql(create table)からOpenAPI3のCRUD仕様書(yaml)を自動生成する

OpenAPI3の仕様書から、コードを自動生成は結構あるんだけど、既に実装されているSQLテーブルからCRUDのOpenAPI3の仕様書(yaml)を自動生成したい!
本当はlaravel8のapi.phpから全APIを自動生成して欲しいけど、無理っぽいのでCRUDとテーブル定義からschemasだけでも叩き台として出してくれると、だいぶ楽!

Go言語で作ってくれている人がいたので使ってみた。
https://qiita.com/toshi1127/items/181c6e139d8d3849cf88

1. 既存のmysqlからエクスポート。正規表現を使ってcreate tableだけ抽出(コメントなんかも削除)
2. サンプルのqueries.sqlを見てみると改行があるとエラーになる。create table1行になるように修正。最後の行に改行があるとエラー。
3. create tableにcurrent_timestampがあるとエラーになったので削除
4. conf.ymlで、欲しいテーブルを指定する(中間テーブルは不要など)
5. patchメソッドは要らないので、swagger_templates.go(アウトプットの定義ファイル)から削除
6. tagsフィールドが無いから追加(各メソッドに追記。tagsフィールドは手動追加)

アウトプットされた形式が、swagger2なので、openapi3にコンバートする
https://qiita.com/omineyu/items/fcde0b8800d9e9bd1b14

これをベースにlaravel8のapi.phpを見て、API仕様書を作ろう

モバイルバージョンを終了