Node.jsで最初のAPIを作る|Webアプリ開発実践ノート Day03 | SORAXIOMラボ

Day03:Node.jsで最初のAPIを作る(TypeScript編)

スポンサーリンク
Webアプリ開発実践ノート

はじめに

ここからいよいよ 「動くもの」 を作り始める。

今回は Node.js を使って、
Angularから呼び出される前提のAPI を、
TypeScriptで最小構成から作ってみる。

目的は、

  • Node.jsが何をしているのか
  • APIとは何を返すものなのか
  • TypeScriptがどこで効いてくるのか

を、実装を通して理解すること。


APIとは何か(超ざっくり)

APIは、

「リクエストを受けて、結果を返す窓口」

画面を持たず、
HTMLも返さない。

返すのは基本的に JSON

{
  "message": "hello"
}

Angularは、このJSONを受け取って
画面に表示したり、処理に使ったりする。


今回の構成

今回は学習用として、
Express + TypeScript を使う。

理由は単純で、

  • Node.jsの素の動きが分かりやすい
  • 処理の流れが追いやすい
  • 後でNestJSに移行しやすい

という点。


最小のAPI構成イメージ

src/
 ├─ index.ts
 └─ routes/
     └─ hello.ts
  • index.ts:サーバー起動
  • hello.ts:API定義

サーバーの役割を理解する

Node.jsのAPIサーバーは、基本的に次の仕事しかしない。

  1. リクエストを受け取る
  2. 必要なら処理する
  3. JSONを返す

画面のことは一切考えない。

ここが、
Angularとの大きな役割分担になる。


TypeScriptが効いてくる場面

APIを書くときも、TypeScriptは効いてくる。

たとえば、

  • 受け取るパラメータ
  • 返すデータの形
  • 処理結果の型

を明示できる。

type HelloResponse = {
  message: string;
};

これだけで、

  • このAPIは何を返すのか
  • 文字列なのか、数値なのか

がはっきりする。


「とりあえず動く」より「分かる」

この段階では、

  • 認証
  • DB接続
  • 複雑なルーティング

は不要。

むしろ、

  • なぜこのファイルが必要なのか
  • なぜJSONを返すのか
  • なぜ画面を持たないのか

を理解する方が重要。


Angularから呼ばれる前提で考える

このAPIは、
将来Angularから呼ばれる

つまり、

  • URLがある
  • HTTPメソッドがある
  • JSONを返す

という条件を満たしていれば十分。

UIの都合に引っ張られず、
APIはAPIとして独立させる。


Day03 時点での理解でOKなこと

この時点では、

  • Expressの細かい設定
  • ミドルウェアの深い理解
  • 本格的な設計

は分からなくていい。

分かっていればOKなのは、

  • Node.jsは「処理担当」
  • APIは「JSONを返す」
  • TypeScriptは「設計を助ける」

この3つ。


Day03 のまとめ

  • Node.jsは画面を持たない
  • APIはJSONを返すだけ
  • AngularとはHTTPでつながる
  • TypeScriptで「返すもの」が明確になる

次回は、
このAPIを少しだけ整理して、
「業務っぽい形」に近づけていく


次回予告

Day04:APIを分割する(Controller的な考え方)

コメント

Copied title and URL