Honoで作るAPIのルーティングをディレクトリで分ける方法
HonoフレームワークでAPIのルーティングを効率的に管理する方法を解説。ディレクトリ構造を使ったモジュール化で、大規模なAPI開発もスムーズに。実践的なサンプルコード付きで、TODOアプリを例にした具体的な実装手順を紹介します。
Honoフレームワークを使用してAPIのルーティングを設定する方法について解説します。
参考公式ドキュメント:https://hono.dev/docs/guides/best-practices#building-a-larger-application
1. 前提としてやりたいこと
Honoフレームワークでは、ルーティングはHonoインスタンスを使って管理されます。
ここからはTODOアプリのAPIを実現するサンプルコードで解説します。
具体的には、todos というディレクトリを作成して、その中にTODOS関連のファイルを置くことで分かりやすく管理します。
2. 基本的なルーティング
まず、src/todos/index.tsにてHonoインスタンスを作成し、todosと定義します。
ここでは、"/"(ルートパス)にGETリクエストが来た場合に、todoList配列の内容をJSON形式で返すようにしています。
// src/todos/index.ts
import { Hono } from "hono";
const app = new Hono();
// ルートパス
app.get("/", (c) => c.json(todoList));
export default app;(src/todos/index.ts ではなく、src/todos.ts としてもOKです。)
3. ルーティングのグループ化
次に、src/index.tsでapp.route()メソッドを用いて、todosをアプリケーション全体で利用できるようにします。
ポイントは、app.route()を使って"/api/todos"というパスを指定している点です。
// src/index.ts
import { Hono } from "hono";
import todos from "./todos";
const app = new Hono();
// "/api/todos"にアクセスされたときにtodosを呼び出す
app.route("/api/todos", todos);
export default app;これにより、実際のアクセスURLは"/api/todos/" で todos を呼び出すことができます。
4. まとめ
このように簡潔にルーティングを設定できると、管理がとてもラクになります。
簡易的なAPIを開発するのであればこのような作業は不要でしょうが、大きなプロジェクトになると、上記で紹介したようにディレクトリで切ってルーティングを設定すると良いでしょう。