Express で REST API を TypeScript で書くための boilerplate ジェネレータ

最近 Node.js の Web App Framework である Express で TypeScript を使って REST API を書く機会がありました。

これまでずっとサーバーサイドは Java や .NET で書いてきたので Node.js で書くこと自体が新鮮でしたし TypeScript も久々でした。

作業はもちろん VS Code で行いました。TypeScript への最適化が進んでおり、Eclipse で Java を書いてる (Visual Studio で C# を書いてる)レベルとまでは行かないものの、IDE + 静的型付け言語の開発体験に近づきつつある感じです。コードの見た目も Java や C# にそっくりになります。NPM でなじみのパッケージをインストールして使ったりできるし、型定義ファイルがなくてもコード書けるし、いい感じに緩くてなかなか居心地の良い環境です。

Java ではアプリケーションサーバの起動やモジュールのローディングに時間がかかるため、コード修正 -> 動作確認のサイクルが長くなってしまいますが、Node.js の起動は早いので作業が早く済みます。

Java のサポートが有償化され、Java 離れが進むことが予想される中、Express (および類する Node.js のフレームワーク) も移行先として有力な選択肢になるかもしれません。

ところで、フレームワークを使って開発を始める時は、定型的なコードをたくさん書くのが面倒なので、プロジェクトテンプレートやボイラープレートの類が欲しくなります。もちろん Express でもたくさん提供されていて、すぐに見つかるのが Express Generater というやつです。

www.npmjs.com

これは、TypeScript ではなく JavaScript のコードを生成しますので TypeScript に置き換える作業が面倒です。

ということで見つけたのがこちら。

www.npmjs.com

Yeoman を使用してコード生成するジェネレータです。

$ yo express-no-stress myapp

でアプリが生成されます。

f:id:kondoumh:20180905215250p:plain

Swagger も統合されていていい感じに API 開発できそうです。

Express では ejs というテンプレートエンジンがあり、サーバーサイドレンダリング処理も普通に書けますが、このジェネレータは API にフォーカスしているようです。今回は、API 開発の用途で探してたのでこれ以上追及はしていません。