Astro 不是只有页面,它也能提供服务端端点。
典型例子:
// src/pages/api/subscribe.ts
import type { APIRoute } from 'astro';
export const POST: APIRoute = async ({ request }) => {
const { email } = await request.json();
if (!email) {
return new Response(
JSON.stringify({ error: 'email is required' }),
{
status: 400,
headers: { 'Content-Type': 'application/json' },
},
);
}
await saveSubscriber(email);
return new Response(
JSON.stringify({ ok: true }),
{
status: 200,
headers: { 'Content-Type': 'application/json' },
},
);
};它适合:
- JSON API
- RSS
- webhook
- 文件生成
- 图片生成
- 后端工具型接口
翻成展馆语言:
页面 = 正式展馆
endpoint = 馆务服务台如果你只是要给前端一个小接口、对外暴露一段后勤能力,endpoint 非常自然。