旅の途中、興味深いオアシスを見つけた。忘れないうちに、この羊皮紙に記しておくとしよう。
最近、仕事という名の旅路で、REST API(Webサービス通信規格)という無口なゴーレムと対話する機会が増えてきた。しかし、このゴーレムは気難しく、気軽に呼び出して稽古をすることができない。ならば、どうするか。そうだ、こちらの言うことだけを素直に聞いてくれる、都合のいい「幻影(モック:模擬環境)」を創り出せばいい。
情報の砂漠を彷徨ううち、私は「json-server」(モックREST APIサーバ構築ツール)という、驚くほど簡単な錬金術の存在を知った。WSL2 Ubuntu(Windows上のLinux環境)という名の祭壇で、わずかな呪文を唱えるだけで、誰でも幻影のゴーレムを創り出せるのだ。これは、その驚くほど簡単な儀式の全てを記した、未来の錬金術師たちのための魔導書である。
この羊皮紙のあらまし
- この羊皮紙のあらまし
- この羊皮紙が導く者
- 砂漠の道標
- 第一の儀式:祭壇の準備(Node.jsインストール)
- 第二の儀式:錬金術の道具を手に入れる(json-serverインストール)
- 第三の儀式:魂の設計図(data.json作成)
- 第四の儀式:魂の召喚(json-server起動)
- 最終儀式:ゴーレムとの対話
- 羊皮紙を巻く前に
- 砂漠で見つけた魔法のランプ
- ラクダの独り言
この羊皮紙が導く者
- 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(グラフィカルユーザーインターフェース)で直感的に、そして美しくゴーレムと対話できる、冒険の必需品だ。
羊皮紙を巻く前に
json-serverを使えば、REST API(Webサービス通信規格)の幻影(モック環境)を、これほどまでに簡単に創り出せるとは、私自身も驚きだった。JSONファイル一つで完結するこの錬金術は、まさに「技術の民主化」を体現している。
json-serverの優れた点
- 圧倒的な導入の容易さ - Node.jsさえあれば、数分でREST APIサーバが起動する。複雑な設定ファイルも不要だ。
- フロントエンド開発の自由 - バックエンドAPIの完成を待たずに開発を進められ、プロジェクトの並行作業が可能になる。
- 安全な学習環境 - JSONファイル一つで、いつでも初期状態に戻せる。REST APIの振る舞いを安全に実験できる理想的な稽古場だ。
- 実践的な対話手段 - curlコマンドでの基礎理解から、Postmanでの視覚的操作まで、段階的な習熟が可能になる。
まとめ
この羊皮紙が、REST APIという無口なゴーレムとの対話に悩む、未来の探求者の助けとなることを願う。幻影のゴーレムとの稽古を重ねれば、やがて本物のゴーレムとも、自在に対話できる日が来るだろう。
おっと、どうやら相棒が腹を空かせたようだ。今日はこのへんで筆を置くとしよう。
砂漠で見つけた魔法のランプ
- json-server - GitHub | 幻影を呼び出す錬金術の公式魔導書
- Node.js公式サイト | 魔法体系の総本山
- Postman公式サイト | 魂の声を美しく聞くための魔法の水晶玉
ラクダの独り言
ご主人が、誰もいないのに「りんごは100円」だの「いちごを追加」だの、一人でブツブツ言いながら黒い画面を叩いている。どうやら、自分の言うことだけを聞く、都合のいい幻の商人を創り出して、買い物の練習でもしているらしい。まったく、そんな暇があるなら、俺の干し草でも買いに行ってくれりゃいいんだがな。現実の商人は、ご主人みたいに素直じゃないぞ。おっと、また腹が鳴っちまった。