つくる:サーバー始動
新しいことは出てきません
この回では、新しい知識は 1 つも出てきません。第3章で書いたものを 1 つにまとめて、fleama のサーバーを立ち上げます。
データ層とサーバーがつながる
第2章で「読む・書く」を引き受けるデータ層を作りました。第3章では待ち受ける口を作りました。この 2 つをつなぐと、はじめて API になります。
プレーンテキスト
リクエスト → ルート → データ層 → 応答サーバーの仕事は、この橋渡しです。どのパスに来たかを見分け、データ層から必要なものを取り出し、返す形に整えて渡します。
/health を先に作る理由
実務のサーバーには、たいてい /health のような動いているかを答えるだけのパスがあります。
中身のある処理は何もしません。ですが「サーバーが立っているか」と「データが正しく返るか」を切り分けられます。第8章で本番へ持っていくとき、まずここを叩いて生死を確かめます。
ここまでに手に入れたもの
| 何を | どのレッスンで |
|---|---|
| メソッドとパスで依頼を見分ける | サーバーとリクエスト |
| Express で待ち受ける | Expressを導入する |
| パスごとに処理を分ける | ルーティング |
| JSON で返す | JSONを返す |
| 直したものを反映させる | 開発の回し方 |
ここから先
次の第4章では、この /items を本格的な API に育てます。1 件だけ取り出す、新しく登録する、書き換える、消す。フリマとして必要な操作が一通り揃います。
手を動かす
演習では、第3章のすべてを使って fleama のサーバーを組み立てます。動作確認のパスと、商品を返すパスの両方を備えてください。
要件
GET /healthは{"status":"ok"}を返すGET /itemsはidnamepriceだけにした商品の配列を返すGET /items/countは{"count":件数}を返す
入出力例
request("GET", "/health") → "200 {"status":"ok"}"
request("GET", "/items") → "200 [{"id":1,"name":"レザースニーカー","price":4800},{"id":2,"name":"古着のデニムジャケット","price":6200},{"id":3,"name":"木製のスツール","price":3500}]"
request("GET", "/items/count") → "200 {"count":3}"ヒント
編集 ゆめさく編集部