たびとの旅路 ~電脳砂漠の冒険譚~

フロッピー頼りに歩き、クラウドの地平を見つめる今日まで。見つけたオアシス、迷い込んだ砂の迷宮、全てこの羊皮紙に。

幻影を呼び出す錬金術 ~json-serverで創る、お手軽REST APIのゴーレム~

旅の途中、興味深いオアシスを見つけた。忘れないうちに、この羊皮紙に記しておくとしよう。

最近、仕事という名の旅路で、REST API(Webサービス通信規格)という無口なゴーレムと対話する機会が増えてきた。しかし、このゴーレムは気難しく、気軽に呼び出して稽古をすることができない。ならば、どうするか。そうだ、こちらの言うことだけを素直に聞いてくれる、都合のいい「幻影(モック:模擬環境)」を創り出せばいい。

情報の砂漠を彷徨ううち、私は「json-server」(モックREST APIサーバ構築ツール)という、驚くほど簡単な錬金術の存在を知った。WSL2 Ubuntu(Windows上のLinux環境)という名の祭壇で、わずかな呪文を唱えるだけで、誰でも幻影のゴーレムを創り出せるのだ。これは、その驚くほど簡単な儀式の全てを記した、未来の錬金術師たちのための魔導書である。

この羊皮紙のあらまし

この羊皮紙が導く者

  • REST APIという無口なゴーレムとの、手軽な対話相手を求める者
  • Node.jsとjson-serverという、モダンな錬金術に興味がある探求者
  • フロントエンド開発でバックエンドAPIを待たずに作業を進めたい冒険者
  • WSL2 Ubuntu環境でモックサーバ構築を学びたい技術者

砂漠の道標

  • REST API - Webサービス間でデータをやり取りするための設計様式。HTTPメソッド(GET、POST等)を使用する。
  • json-server - JSONファイルからモックREST APIサーバを即座に構築できるNode.jsツール。
  • Node.js - JavaScriptをサーバサイドで実行できるランタイム環境。npmパッケージ管理システムを含む。
  • npm - Node Package Managerの略。Node.js用のパッケージ管理ツール。
  • WSL2 - Windows Subsystem for Linux 2の略。Windows上でLinux環境を動作させる仮想化技術。
  • モック - 本物のシステムを模倣した代替物。テストや開発時に使用される。
  • curl - コマンドラインからHTTPリクエストを送信できるツール。
  • Postman - REST APIのテストと開発を支援するGUIアプリケーション。

第一の儀式:祭壇の準備(Node.jsインストール)

まずは、WSL2 Ubuntu(Windows上のLinux環境)という祭壇に、儀式の基礎となる魔法体系「Node.js」(JavaScriptランタイム環境)を築く。 注意すべきは、標準の井戸から汲める水(apt経由で入るNode.js)は古すぎて、我々の儀式には使えないことだ。 以下の呪文で、nodesource(Node.js公式リポジトリ)という新たな水源から、最新の安定した魔力(v18.x)を手に入れる。

$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt install nodejs

node -vで、v18の輝きを確認できれば、祭壇は整った。

第二の儀式:錬金術の道具を手に入れる(json-serverインストール)

次に、npm(Node.jsパッケージ管理ツール)という魔法の袋を使い、今回の錬金術の核心である「json-server」を手に入れる。

$ sudo npm install -g json-server

第三の儀式:魂の設計図(data.json作成)

ゴーレムにどんな言葉を語らせるか、その魂の設計図をdata.json(JSONデータファイル)という名の羊皮紙に記す。

{
  "fruits": [
    {"id": 1, "name": "Apple", "price": 100},
    {"id": 2, "name": "Banana", "price": 150}
  ]
}

第四の儀式:魂の召喚(json-server起動)

設計図が完成したら、いよいよ召喚の儀式だ。json-serverの呪文の後に、魂の設計図を捧げる。

$ json-server data.json

  \{^_^}/ hi!

  Resources
  http://localhost:3000/fruits

\{^_^}/ hi!という、なんとも気の抜けた精霊の挨拶が聞こえれば、幻影のゴーレムは、あんたの目の前に降臨している。

最終儀式:ゴーレムとの対話

別のターミナルからcurl(HTTPリクエスト送信ツール)という呪文で、ゴーレムに問いかけてみよう。

  • 魂の記録を閲覧する (GET): $ curl -X GET 'http://localhost:3000/fruits/'
  • 新たな魂を吹き込む (POST): $ curl -X POST ... -d '{"id":"3",...}'
  • 魂の一部を書き換える (PATCH): $ curl -X PATCH 'http://localhost:3000/fruits/3' ...
  • 魂を消し去る (DELETE): $ curl -X DELETE 'http://localhost:3000/fruits/3'

より高度な対話術:Postmanという魔法の水晶玉

curlの呪文詠唱が面倒なら、Postman(REST APIテストツール)という魔法の水晶玉を使うといい。GUI(グラフィカルユーザーインターフェース)で直感的に、そして美しくゴーレムと対話できる、冒険の必需品だ。

Postman による実行例

水晶玉に映し出された、ゴーレムの魂

羊皮紙を巻く前に

json-serverを使えば、REST API(Webサービス通信規格)の幻影(モック環境)を、これほどまでに簡単に創り出せるとは、私自身も驚きだった。JSONファイル一つで完結するこの錬金術は、まさに「技術の民主化」を体現している。

json-serverの優れた点

  1. 圧倒的な導入の容易さ - Node.jsさえあれば、数分でREST APIサーバが起動する。複雑な設定ファイルも不要だ。
  2. フロントエンド開発の自由 - バックエンドAPIの完成を待たずに開発を進められ、プロジェクトの並行作業が可能になる。
  3. 安全な学習環境 - JSONファイル一つで、いつでも初期状態に戻せる。REST APIの振る舞いを安全に実験できる理想的な稽古場だ。
  4. 実践的な対話手段 - curlコマンドでの基礎理解から、Postmanでの視覚的操作まで、段階的な習熟が可能になる。

まとめ

この羊皮紙が、REST APIという無口なゴーレムとの対話に悩む、未来の探求者の助けとなることを願う。幻影のゴーレムとの稽古を重ねれば、やがて本物のゴーレムとも、自在に対話できる日が来るだろう。

おっと、どうやら相棒が腹を空かせたようだ。今日はこのへんで筆を置くとしよう。

砂漠で見つけた魔法のランプ

ラクダの独り言

ご主人が、誰もいないのに「りんごは100円」だの「いちごを追加」だの、一人でブツブツ言いながら黒い画面を叩いている。どうやら、自分の言うことだけを聞く、都合のいい幻の商人を創り出して、買い物の練習でもしているらしい。まったく、そんな暇があるなら、俺の干し草でも買いに行ってくれりゃいいんだがな。現実の商人は、ご主人みたいに素直じゃないぞ。おっと、また腹が鳴っちまった。