最近 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 というやつです。
これは、TypeScript ではなく JavaScript のコードを生成しますので TypeScript に置き換える作業が面倒です。
ということで見つけたのがこちら。
Yeoman を使用してコード生成するジェネレータです。
$ yo express-no-stress myapp
でアプリが生成されます。
Swagger も統合されていていい感じに API 開発できそうです。
Express では ejs というテンプレートエンジンがあり、サーバーサイドレンダリング処理も普通に書けますが、このジェネレータは API にフォーカスしているようです。今回は、API 開発の用途で探してたのでこれ以上追及はしていません。