tsoa
tsoaとは、TypeScriptとNodeを使用してOpenAPI準拠のREST APIを生成するためのモジュール。
2020-05-05時点の最新バージョンはv3.0.8。
- APIの唯一の信頼できる情報源としてのTypeScriptコントローラーとモデル
- Express、Hapi、Koa対応
- エンドポイントの説明などにはjsdocを使用
メリット
- コメントと実装のずれがなくなる(JSDocで管理するモジュールもあるが、いつかずれる)
- ドキュメント上からリクエストが投げれる
デメリット
- デコレーター祭り
- route.tsをプレコンパイルする必要があり、開発環境が少しだけ複雑に
導入方法
Introduction | tsoaを順に進めれば、以下のようなAPIドキュメントが http://localhost:3000/docs
に表示されます。
Controller部分をデコレーターを使用した書き方にする必要があり、
既存プロジェクトに導入するにはそこそこな作業が発生しそう。
JavaでOpenAPI準拠のREST APIを生成する場合は以下が参考になります。
https://qiita.com/ririkku/items/6e416d13567c6ee9e633
その他
tsoaのドキュメントのリポジトリ
https://github.com/tsoa-community/docs