AgentSkillsCN

architecture-overview

后端分层架构与请求生命周期(路由 → 控制器 → 服务 → 存储库)。关键词:架构、分层、请求生命周期、关注点分离。

SKILL.md
--- frontmatter
name: architecture-overview
description: "Layered backend architecture and request lifecycle (routes → controllers → services → repositories). Keywords: architecture, layers, request lifecycle, separation of concerns."

Architecture Overview (Backend Services)

This skill describes a layered architecture that keeps HTTP concerns, business logic, and data access separated.


Layered architecture pattern

code
HTTP Request
  ↓
Routes (routing only)
  ↓
Controllers (HTTP handling)
  ↓
Services (business logic)
  ↓
Repositories (data access)
  ↓
Database

Responsibilities by layer

  • Routes

    • Register paths/methods and middleware
    • Delegate to controllers
    • Do not contain business rules
  • Controllers

    • Parse params/body/query
    • Validate inputs
    • Call services
    • Translate domain errors into HTTP responses
  • Services

    • Business rules and orchestration
    • No direct HTTP knowledge (Request/Response types)
  • Repositories

    • Encapsulate DB queries and transactions
    • Return domain-friendly results
    • Map DB errors into typed errors

Request lifecycle (example)

ts
// Route delegates to controller
router.post("/users", authMiddleware, (req, res) => userController.create(req, res));

// Controller validates and calls service
const input = createUserSchema.parse(req.body);
const user = await userService.create(input);

// Service enforces business rules and uses repository
return await userRepository.create(input);

Middleware ordering (high signal)

Typical safe ordering:

  1. Monitoring/request tracing init (first)
  2. Body parsing
  3. Cookie/session parsing (if used)
  4. Request context (correlation ids, user identity)
  5. Routes
  6. Error boundary (last)
  7. Monitoring error handler (last)

Rule: error handlers must be registered after routes.


Related Skills

  • routing-and-controllers
  • services-and-repositories