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を開発するのであればこのような作業は不要でしょうが、大きなプロジェクトになると、上記で紹介したようにディレクトリで切ってルーティングを設定すると良いでしょう。