Backend Development

MoizIbnYousaf/ai-agent-skills/skills/backend-development

作者 MoizIbnYousaf6d95c788aa22ce39a4807b9a4c31c758a2036dc6MIT收录于 2026年10月9日更新于 2026年10月9日

Backend API design, database architecture, microservices patterns, and test-driven development. Use for designing APIs, database schemas, or backend system architecture.

AI 生成的概览

提供后端 API 设计、数据库模式、认证、缓存、限流与可观测性的参考指导。

功能
该技能提供后端工程的参考资料与代码模式:RESTful 接口约定、JSON 响应与错误格式、SQL 表结构与查询模式、带中间件的 JWT 认证、缓存旁路(cache-aside)缓存、限流以及可观测性实践。它仅包含说明,不生成文件或脚本;由智能体在设计或审查后端系统时套用这些模式。
适用场景
适用于设计 API、数据库表结构或后端系统架构,或任务需要认证、缓存、限流、可观测性等常规模式时。
运行要求
无需任何工具、软件包或凭据;该技能不附带脚本,仅为说明文档。示例中提及 PostgreSQL、Redis 以及 jsonwebtoken、express-rate-limit 等 TypeScript 库,但仅为示意,并未随技能提供。

Backend Development

API Design

RESTful Conventions

GET    /users          # List usersPOST   /users          # Create userGET    /users/:id      # Get userPUT    /users/:id      # Update user (full)PATCH  /users/:id      # Update user (partial)DELETE /users/:id      # Delete user
GET    /users/:id/posts  # List user's postsPOST   /users/:id/posts  # Create post for user

Response Format

json
{  "data": { ... },  "meta": {    "page": 1,    "per_page": 20,    "total": 100  }}

Error Format

json
{  "error": {    "code": "VALIDATION_ERROR",    "message": "Invalid input",    "details": [      { "field": "email", "message": "Invalid format" }    ]  }}

Database Patterns

Schema Design

sql
-- Use UUIDs for public IDsCREATE TABLE users (  id SERIAL PRIMARY KEY,  public_id UUID DEFAULT gen_random_uuid() UNIQUE,  email VARCHAR(255) UNIQUE NOT NULL,  created_at TIMESTAMPTZ DEFAULT NOW(),  updated_at TIMESTAMPTZ DEFAULT NOW());
-- Soft deletesALTER TABLE users ADD COLUMN deleted_at TIMESTAMPTZ;
-- IndexesCREATE INDEX idx_users_email ON users(email);CREATE INDEX idx_users_created ON users(created_at DESC);

Query Patterns

sql
-- Pagination with cursorSELECT * FROM postsWHERE created_at < $cursorORDER BY created_at DESCLIMIT 20;
-- Efficient countingSELECT reltuples::bigint AS estimateFROM pg_class WHERE relname = 'users';

Authentication

JWT Pattern

typescript
interface TokenPayload {  sub: string;      // User ID  iat: number;      // Issued at  exp: number;      // Expiration  scope: string[];  // Permissions}
function verifyToken(token: string): TokenPayload {  return jwt.verify(token, SECRET) as TokenPayload;}

Middleware

typescript
async function authenticate(req: Request, res: Response, next: Next) {  const token = req.headers.authorization?.replace('Bearer ', '');  if (!token) {    return res.status(401).json({ error: 'Unauthorized' });  }
  try {    req.user = verifyToken(token);    next();  } catch {    res.status(401).json({ error: 'Invalid token' });  }}

Caching Strategy

typescript
// Cache-aside patternasync function getUser(id: string): Promise<User> {  const cached = await redis.get(`user:${id}`);  if (cached) return JSON.parse(cached);
  const user = await db.users.findById(id);  await redis.setex(`user:${id}`, 3600, JSON.stringify(user));  return user;}
// Cache invalidationasync function updateUser(id: string, data: Partial<User>) {  await db.users.update(id, data);  await redis.del(`user:${id}`);}

Rate Limiting

typescript
const limiter = rateLimit({  windowMs: 60 * 1000,  // 1 minute  max: 100,             // 100 requests per window  keyGenerator: (req) => req.ip,  handler: (req, res) => {    res.status(429).json({ error: 'Too many requests' });  }});

Observability

  • Logging: Structured JSON logs with request IDs
  • Metrics: Request latency, error rates, queue depths
  • Tracing: Distributed tracing with correlation IDs
  • Health checks: /health and /ready endpoints

来源与署名

来源:MoizIbnYousaf/ai-agent-skills位于skills/backend-development提交6d95c78

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架