backend-patternslisted
Install: claude install-skill omeyang/Thoth
# 后端架构模式专家
应用后端架构模式设计或实现服务:$ARGUMENTS
---
## API 设计模式
### RESTful API 结构
```go
// 资源导向的 URL 设计
GET /api/v1/users // 列出资源
GET /api/v1/users/:id // 获取单个资源
POST /api/v1/users // 创建资源
PUT /api/v1/users/:id // 替换资源
PATCH /api/v1/users/:id // 更新资源
DELETE /api/v1/users/:id // 删除资源
// 查询参数用于过滤、排序、分页
GET /api/v1/users?status=active&sort=created_at&limit=20&offset=0
```
### Repository 模式
抽象数据访问逻辑,解耦业务层和存储层。接口定义在使用方。
```go
type UserRepository interface {
FindAll(ctx context.Context, filters UserFilters) ([]*User, error)
FindByID(ctx context.Context, id string) (*User, error)
Create(ctx context.Context, user *User) error
Update(ctx context.Context, user *User) error
Delete(ctx context.Context, id string) error
}
```
> 完整 MongoDB 实现见 [references/examples.md](references/examples.md#repository-模式实现)
### Service 层模式
业务逻辑与数据访问分离,依赖注入 Repository 和 Cache。
```go
type UserService struct {
repo UserRepository
cache CacheService
logger *slog.Logger
}
```
> 完整 Service 实现(含缓存读取)见 [references/examples.md](references/examples.md#service-层实现)
### 中间件模式
用于请求/响应处理管道,支持链式组合。
```go
type Middleware func(http.Handler) http.Handler
func Chain(h http.Handler, middlewares ...Middleware) http.Handler {
for i := len(middlewares) - 1; i >= 0; i-- {
h = middlewares[i](h)
}
return h
}
```
> 完整 Logging/Recovery 中间件见 [references/examples.md](references/examples.md#中间件实现)
-