HOWTO: Using @quatrain/api-server-astro
This document guides you on routing API endpoints through Astro.
1. Catch-all Routing in Astro
Create a catch-all server endpoint in Astro (e.g. src/pages/api/[...path].ts) and bind the AstroAdapter:
import { AstroAdapter } from '@quatrain/api-server-astro';
import { setupApiServer } from '../your-api-setup'; // Your API router configuration
const adapter = new AstroAdapter('/api');
setupApiServer(adapter);
// Export Astro APIRoute handlers
export const ALL = adapter.handle();2. Wrapping a single handler
If you only want to wrap a single Quatrain API handler as an Astro APIRoute:
import { AstroAdapter } from '@quatrain/api-server-astro';
import { ApiRequest, ApiResponse } from '@quatrain/api';
const myHandler = async (req: ApiRequest, res: ApiResponse) => {
res.json({ message: 'Hello from Astro!' });
};
export const GET = AstroAdapter.wrap(myHandler);