vapor
1
总安装量
1
周安装量
#78273
全站排名
安装命令
npx skills add https://github.com/tryswift/try-swift-tokyo --skill vapor
Agent 安装分布
amp
1
cline
1
opencode
1
cursor
1
continue
1
kimi-cli
1
Skill 文档
Vapor Best Practices
1. Concurrency
- ALWAYS use Swift Concurrency (
async/await) overEventLoopFuture. - Use
req.application.asyncControllerpatterns if using custom executors, but standardasyncroute handlers are preferred.
2. Controllers & Routing
- Organize routes into
RouteCollectionconformances. - Do not put logic in
routes.swift; delegate immediately to a Controller. - Group routes by feature (e.g.,
UsersController,AuthController).
3. Fluent (Database)
- Use
@Parentand@Childrenproperty wrappers correctly. - Always use
DTOs(Data Transfer Objects) implementationContentfor API requests/responses. NEVER return a Fluent Model directly to the client. - Run migrations via
app.migrations.add(...).
4. Environment
- Use
Environment.get("KEY")for configuration. - Support
ProductionvsDevelopmentmodes explicitly inconfigure.swift.
Example Route
func boot(routes: RoutesBuilder) throws {
let users = routes.grouped("users")
users.get(use: index)
}
@Sendable
func index(req: Request) async throws -> [UserDTO] {
let users = try await User.query(on: req.db).all()
return users.map { $0.toDTO() }
}