ほのとアストロの使い方

Susan Sarandon
リリース: 2025-01-17 08:31:10
オリジナル
264 人が閲覧しました

How to use Astro with Hono

Astro: 強力な Web フレームワークで、私の現在のお気に入りです。その多用途性により、幅広いプロジェクトに最適です。 ただし、API 開発に関しては Hono が際立っています。

Hono: ユーザーフレンドリーな RPC システム (tRPC に似ていますが、より高速です) を備えたシンプルでポータブルな API フレームワーク。 このガイドでは、両方の長所を組み合わせる方法を説明します。

Astro のセットアップ

次を使用して新しい Astro プロジェクトを作成します:

<code class="language-bash">npm create astro@latest</code>
ログイン後にコピー

CLI プロンプトに従います。 次のコードでプロジェクトを開始します:

<code class="language-bash">npm run dev</code>
ログイン後にコピー

http://localhost:4321 で Astro プロジェクトにアクセスします。

ほののセットアップ

Hono をインストールします:

<code class="language-bash">npm install hono</code>
ログイン後にコピー

src/pages/api/[...path].ts でキャッチオール ルートを作成します:

<code class="language-typescript">// src/pages/api/[...path].ts
import { Hono } from 'hono';

const app = new Hono().basePath('/api/');

app.get('/posts', async (c) => {
    return {
        posts: [
            { id: 1, title: 'Hello World' },
            { id: 2, title: 'Goodbye World' },
        ],
    };
});
</code>
ログイン後にコピー

.basePath('/api/') は重要です。 Hono のルーティングを Astro のファイル構造に合わせます。 Astro プロジェクトのエンドポイントの場所に一致するように、必要に応じてこのパスを調整します (例: /foo/bar/ の場合は src/pages/foo/bar/[...path].ts)。

ほのとアストロの統合

すべてのリクエストを処理し、Hono にルーティングするための ALL エクスポートを作成します:

<code class="language-typescript">// src/pages/api/[...path].ts
import { Hono } from 'hono';
import type { APIRoute } from 'astro';

// ... (Hono app setup from previous step) ...

export type App = typeof app; // Export Hono app type

export const ALL: APIRoute = (context) => app.fetch(context.request);</code>
ログイン後にコピー

これで、http://localhost:4321/api/posts は Hono 経由で模擬データを返します。

型付き RPC クライアントの追加

タイプセーフな API 対話の場合は、Hono の hc クライアントを使用します:

<code class="language-typescript">// src/pages/some-astro-page.astro
import { hc } from 'hono/client';
import type { App } from './api/[...path].ts';

const client = hc<App>(window.location.href);

const response = await client.posts.$get();
const json = await response.json();

console.log(json); // { posts: [...] }</code>
ログイン後にコピー

結論

このセットアップは、Astro のフロントエンド機能と Hono の効率的なバックエンド機能を組み合わせ、タイプ セーフティを備えた合理化された開発エクスペリエンスを提供します。 Hono の広範な機能を探索して、さらに高度な API 開発を行ってください。

以上がほのとアストロの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート