Back to listSwift
Vapor-style Route Controller
Lv.51227@mukitaro0 playsJan 2, 2026
Vapor route controller pattern. Server-side Swift web framework.
preview.swift
1import Vapor2 3struct User: Content {4 var id: UUID?5 var name: String6 var email: String7}8 9struct UserController: RouteCollection {10 func boot(routes: RoutesBuilder) throws {11 let users = routes.grouped("users")12 users.get(use: index)13 users.post(use: create)14 users.group(":userID") { user in15 user.get(use: show)16 user.put(use: update)17 user.delete(use: delete)18 }19 }20 21 func index(req: Request) async throws -> [User] {22 return [User(id: UUID(), name: "Alice", email: "alice@example.com")]23 }24 25 func show(req: Request) async throws -> User {26 guard let userID = req.parameters.get("userID", as: UUID.self) else {27 throw Abort(.badRequest)28 }29 return User(id: userID, name: "User", email: "user@example.com")30 }31 32 func create(req: Request) async throws -> User {33 let user = try req.content.decode(User.self)34 return user35 }36 37 func update(req: Request) async throws -> User {38 let user = try req.content.decode(User.self)39 return user40 }41 42 func delete(req: Request) async throws -> HTTPStatus {43 return .noContent44 }45}Custom problems are not included in rankings