Astro: Ein leistungsstarkes Web-Framework, mein aktueller Favorit. Seine Vielseitigkeit macht es ideal für eine Vielzahl von Projekten. Bei der API-Entwicklung sticht Hono jedoch heraus.
Hono: Ein einfaches, portables API-Framework mit einem benutzerfreundlichen RPC-System (ähnlich tRPC, aber schneller). Dieser Leitfaden zeigt, wie Sie die Stärken beider kombinieren können.
Astro einrichten
Erstellen Sie ein neues Astro-Projekt mit:
<code class="language-bash">npm create astro@latest</code>
Folgen Sie den CLI-Anweisungen. Starten Sie das Projekt mit:
<code class="language-bash">npm run dev</code>
Greifen Sie unter http://localhost:4321
auf Ihr Astro-Projekt zu.
Hono einrichten
Hono installieren:
<code class="language-bash">npm install hono</code>
Erstellen Sie eine Sammelroute in 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>
Das .basePath('/api/')
ist entscheidend; Es richtet Honos Routing an Astros Dateistruktur aus. Passen Sie diesen Pfad nach Bedarf an den Endpunktstandort Ihres Astro-Projekts an (z. B. /foo/bar/
für src/pages/foo/bar/[...path].ts
).
Hono mit Astro integrieren
Erstellen Sie einen ALL
Export, um alle Anfragen zu bearbeiten und an Hono weiterzuleiten:
<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>
Jetzt http://localhost:4321/api/posts
werden Ihre Scheindaten über Hono zurückgegeben.
Hinzufügen eines typisierten RPC-Clients
Für typsichere API-Interaktionen verwenden Sie Honos hc
Client:
<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>
Fazit
Dieses Setup kombiniert die Frontend-Leistung von Astro mit den effizienten Backend-Funktionen von Hono und bietet so ein optimiertes Entwicklungserlebnis mit Typsicherheit. Entdecken Sie die umfangreichen Funktionen von Hono für eine noch fortschrittlichere API-Entwicklung.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Astro mit Hono. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!