サイト移行時に直面した「なぜこの構造にするのか」という問い
urisol.com と urinosuke.com をCloudflare Pagesへ移行する際、Claude Codeとの対話で繰り返し出てきたのが「URI設計はどうするか」「静的サイトでどこまでRESTful設計を意識するか」という問いでした。
私は法人サイトと個人ブログの2つを併営していますが、どちらもAstroで構築しており、記事の管理方法・URL構造・ナビゲーション設計の判断基準が曖昧なまま進めていました。そこで山本陽平『Webを支える技術』を読み返し、REST・URI・HTTPの設計原則を改めて整理しました。
本書はHTTP/URI/HTMLの設計思想を平易に解説した定番書ですが、今回の移行作業では「何を守り、何を妥協するか」の判断軸として機能しました。本記事では、サイト構造に実装した3つの原則と、その実務上の効果を記録します。
原則1: URI設計——リソース指向で階層を設計する
本書の第4章「URIの設計」で強調されるのは「URIはリソースを指す名前であり、動詞ではなく名詞で表現する」という原則です。
移行前のurinosuke.comは記事URLが /posts/generate-post-script/ のように動詞(generate)が混在していました。これを /posts/2025/generate-post-script/ のように年を階層に含める形に変更し、リソース(記事)を時系列で整理する構造にしました。
一方、urisol.comは技術記事を /ndt/vt-basics/ /ndt/ut-level2-exam/ のようにカテゴリを階層に含める形で統一。どちらのサイトも「リソース=記事」を名詞で指し、階層構造がそのままサイトマップとして機能する設計にしました。
この変更により、Claude Codeに「2025年の記事一覧を出力して」と指示するだけで /posts/2025/ 配下のファイルを抽出できるようになり、スクリプトの可読性が上がりました。
原則2: HTTPメソッド——GETとPOSTの責務を静的サイトでどう解釈するか
本書の第5章「HTTPの基本」では、GETは「リソースの取得」、POSTは「リソースの作成」と責務が分離されています。静的サイトではPOSTを使う場面は少ないですが、問い合わせフォームをCloudflare Formsで実装する際、この原則が判断基準になりました。
問い合わせページ /contact/ はGETでアクセスし、フォーム送信はPOSTでCloudflare Workersに渡す構造にしました。送信後のリダイレクト先を /contact/thanks/ とし、ブラウザの再読み込みで重複送信が発生しない設計にしました。
また、記事の検索機能を実装する際、検索クエリを /search/?q=keyword のようにGETのクエリパラメータで渡す形にしました。これにより検索結果URLをブックマーク可能にし、リソース(検索結果ページ)として扱える構造にしました。
原則3: ステートレス——セッションを持たない設計の副次効果
本書の第6章「HTTPの応用」で解説される「ステートレス性」は、サーバーがクライアントの状態を保持しないという原則です。静的サイトは元々ステートレスですが、この原則を意識することで、Cloudflare Pagesのエッジキャッシュを最大限活用できる構造になりました。
具体的には、記事ページに「前回の閲覧日時」や「読了状態」をサーバー側で保持する機能を実装しない判断をしました。代わりに、ブラウザのlocalStorageで読了記事を管理し、サーバー側は完全にステートレスに保ちました。
この設計により、記事ページのキャッシュヒット率が上がり、Cloudflare Analyticsで確認したところ、平均読み込み時間が約30%改善しました。また、サーバー側の状態管理が不要なため、デプロイ後の動作確認が単純化され、CIパイプラインの信頼性が上がりました。
まとめ: REST原則は「なぜその構造にするのか」の言語化装置
『Webを支える技術』から実装したREST設計3原則は、サイト構造の判断基準として機能しただけでなく、Claude Codeとの対話で「なぜこの構造にするのか」を言語化する共通語彙になりました。
URI設計はリソース指向で階層を作り、HTTPメソッドはGETとPOSTの責務を守り、ステートレス性はキャッシュ効率とデプロイ信頼性を両立させる。この3原則は、静的サイト構築の実務判断として、今後も繰り返し参照する基準になりそうです。
個人サイトと法人サイトを併営する立場として、REST原則は「技術的正しさ」だけでなく「運用しやすさ」の設計指針としても有効でした。サイト構造を整理したい方、Claude Codeでのサイト構築を検討している方には、本書の第4〜6章を読んでから設計に入ることを推奨します。
関連書籍
Webを支える技術 HTTP、URI、HTML、そしてREST
REST・URI・HTTPの設計原理を平易に解説した定番書。Astro + Cloudflare でサイト構築する際の判断基準として繰り返し参照しています。