AIイノベーションズ

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

On this page