API-Aufruf
In Launchfa.st liegen, um es den Entwicklern leichter zu machen, alle APIs derzeit im Verzeichnis
src/pages/api.In Launchfa.st liegen, um es den Entwicklern leichter zu machen, alle APIs derzeit im Verzeichnis
src/routes/api.Jede Datei innerhalb von src/pages, die auf .js/.ts endet, kann ein API-Endpunkt sein.
Das Gute an APIs mit Launchfa.st ist, dass Sie die Web-APIs zusätzlich zu Astro nutzen können. So kann der Code in beliebig vielen Projekten wiederverwendet werden, unabhängig von deren Stack.
Mehr zu API-Routen in Astro finden Sie unter https://docs.astro.build/en/core-concepts/endpoints.
Jede Datei innerhalb von src/routes, die auf +server.ts endet, kann ein API-Endpunkt sein.
Mehr zu API-Routen in SvelteKit finden Sie unter https://kit.svelte.dev/docs/routing#server.
Geschützte API-Routen
Um zu veranschaulichen, wie man eine API-Route erstellt, die zurückgibt, ob ein Nutzer angemeldet ist oder nicht, folgen Sie den Schritten in der LaunchFa.st-Vorlage:
- Erstellen Sie eine Datei:
src/pages/api/test.js. - Fügen Sie den folgenden Inhalt in die
test.jsein:
// Handle GET Request to /api/testexport async function GET({ request }) { // Get the user session from the 'request' const session = getSession(request) if (!session) { return new Response('unauthenticated', { status: 403, }) } return new Response('authenticated', { status: 200, })}
// Handle POST Request to /api/testexport async function POST({ request }) { // Parse the incoming form data from the 'request' const context = await request.formData() // Get the user session from the 'request' const session = getSession(request) if (!session) { return new Response('unauthenticated', { status: 403, }) } return new Response('authenticated', { status: 200, })}- Erstellen Sie eine Datei:
src/route/api/test/+server.ts. - Fügen Sie den folgenden Inhalt in die
+server.tsein:
import { json, error } from '@sveltejs/kit'import type { RequestEvent } from './$types'import { getSession } from '@/lib/utils/auth'
// Handle GET Request to /api/testexport async function GET(event: RequestEvent) { // Get the user session from the 'request' const user = getSession(event.request) if (!user) { throw error(403) } // Extract the 'file' parameter from the request URL and do something const url = new URL(event.request.url) const file = url.searchParams.get('file')}
// Handle POST Request to /api/testexport async function POST(event: RequestEvent) { // Get the user session from the 'request' const user = getSession(event.request) if (!user) { throw error(403) } if (user.email) { const data = await event.request.formData() // Get the 'file' field from the form data const file = data.get('file') }}