何を作るの?
所属してるチームで使うAPI群を作ります。
Qiitaには作業の備忘録として投稿します。
なぜNode.js?
今回は簡単なAPIなので、
軽量ですぐに実装可能なNode.jsで書きます。
なぜTypeScript?
オブジェクト指向かつ静的型付けで記述が出来るので、
コードが汚くなりづらいのが特徴です。
※書き方によっては汚くなります()
今回は私一人で書きますが、
今後チームでの導入も考えて触れてみることにしました。
開発環境
docker
https://docs.docker.com/docker-for-mac/install/
node.jsのバージョンは推奨バージョンの8.12.0とします。
node:8.12.0-alpine
swagger
yamlで書けるAPIドキュメントです。
yamlからコードも自動生成出来ます。
swaggerで書いたドキュメントを仕様として、
node.jsの実装に落とし込んでいきます。
atom
atom-typescript
を導入しました。
TypeScriptのbuildが出来るようになります。
Hello World
パッケージ管理用のjsonを生成します。色々質問されますが、基本Enterでokです。
npm init
ルーティングを管理してくれるライブラリ
npm install --save express
セキュリティ対策
npm install --save helmet
TypeScript
npm install --save typescript
app.tsを作成します。
import * as express from 'express'; // tsの場合はimportらしい。なんかpythonぽい。
import * as helmet from 'helmet';
var app = express(); // ここも型定義すべき? any型とかになるんだろうか。
app.use(helmet()); // helmetを使う(そのまま)
app.listen(50001, listen_callback); // http://localhost:50001
app.get("/", root_dir_callback); // ルート直下でGETが呼ばれたら発火
function listen_callback() {
console.log("start!");
}
function root_dir_callback(req, res, err) {
res.end("Hello World!");
}
jsファイルに変換
tsc app.ts
実行
node app.js
感想
Any型(var)が使えるけど、これあんまり使わないほうが良さそう。
次は一旦実装から離れてDockerかSwaggerについて詳しくまとめてみます。