关于 api-endpoint-scaffolder
用于在 Next.js、Express 等框架中搭建 API 端点的技能。它指导开发者确定 HTTP 方法、请求与响应类型,并提供输入验证、状态码和实现规范方面的建议。
主要功能
- 01选择框架和 HTTP 方法
- 02定义请求与响应类型
- 03提供 Next.js 和 Express 模板
- 04指导输入验证
- 05指导状态码和错误处理
适用场景
- 01搭建新的 API 路由
- 02添加请求验证
- 03统一端点响应格式
- 04使用 OpenAPI 或 Swagger 编写端点文档
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ onewave-ai/ claude-skills --skill api-endpoint-scaffolder安装后在 Claude Code 中输入/api-endpoint-scaffolder确认已加载。
详细介绍
API 端点脚手架
说明
创建新的 API 端点时:
- 识别框架(Express、Next.js、FastAPI 等)
- 确定 HTTP 方法(GET、POST、PUT、PATCH、DELETE)
- 定义请求和响应类型
- 遵循最佳实践进行实现
模板
Next.js App Router(TypeScript)
// app/api/[resource]/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { z } from 'zod';
const RequestSchema = z.object({
// Define your schema
});
export async function GET(request: NextRequest) {
try {
const { searchParams } = new URL(request.url);
// Implementation
return NextResponse.json({ data }, { status: 200 });
} catch (error) {
console.error('[API] Error:', error);
return NextResponse.json(
{ error: 'Internal server error' },
{ status: 500 }
);
}
}
export async function POST(request: NextRequest) {
try {
const body = await request.json();
const validated = RequestSchema.parse(body);
// Implementation
return NextResponse.json({ data }, { status: 201 });
} catch (error) {
if (error instanceof z.ZodError) {
return NextResponse.json(
{ error: 'Validation failed', details: error.errors },
{ status: 400 }
);
}
return NextResponse.json(
{ error: 'Internal server error' },
{ status: 500 }
);
}
}
Express(TypeScript)
import { Router, Request, Response, NextFunction } from 'express';
import { z } from 'zod';
const router = Router();
const CreateSchema = z.object({
// Define schema
});
router.post('/', async (req: Request, res: Response, next: NextFunction) => {
try {
const data = CreateSchema.parse(req.body);
// Implementation
res.status(201).json({ success: true, data });
} catch (error) {
next(error);
}
});
export default router;
最佳实践
- 始终使用 Zod、Yup 或类似工具验证输入
- 使用合适的 HTTP 状态码:
- 200:成功
- 201:已创建
- 400:错误请求
- 401:未授权
- 403:禁止访问
- 404:未找到
- 500:服务器错误
- 记录错误,但不要向客户端暴露内部信息
- 使用一致的响应格式
- 为公开端点添加速率限制
- 尽可能使用 OpenAPI/Swagger 编写文档
评论
支持 Markdown