2024年新手入门:Swift微服务从何开始

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

为什么Swift不仅仅是移动开发?



当听到“Swift”时,第一反应通常是iOS应用。但近年来,Swift正稳步迈向服务器端。这并非一时热潮:Apple正在积极开发生态系统,社区也在创建强大的框架。如果您已经在用Swift开发iOS应用,并希望拓展视野——Swift微服务将是您合乎逻辑的下一步。



为什么选择微服务?因为这是构建后端的现代标准:小型、独立的服务,易于扩展和更新。而Swift凭借其高性能、类型安全性和简洁语法,非常适合这一用途。在本文中,我们将探讨如何开始创建Swift微服务,编写实际代码并启动您的第一个服务。



开始前需要了解什么?



为了顺利阅读,您需要具备:

  • Swift基础知识(变量、函数、结构体)
  • 理解HTTP和REST(至少知道“有请求就有响应”)
  • 已安装brew(适用于macOS)或Docker(适用于Linux)

如果缺少某些知识也没关系,我们会在过程中逐步讲解。



选择工具:Vapor——服务器端Swift之王



在Swift服务器端框架市场中,有两个主要竞争者:Vapor和Kitura(来自IBM)。但遗憾的是,Kitura几乎已停止维护。而Vapor正在积极开发中,拥有庞大的社区和完善的文档。因此,我们的选择是——Vapor。



Vapor开箱即用:路由、中间件、数据库操作、WebSocket、通过async/await实现的异步处理。非常适合构建基于Swift的微服务架构。



安装Vapor Toolbox

打开终端并执行:

brew install vapor

安装后检查:

vapor --help

如果看到命令列表,说明一切正常,可以创建第一个项目了。



创建第一个微服务:Hello, World!



我们的第一个微服务将很简单:它接收GET请求并返回JSON。但我们会以正确的方式实现——具备可扩展的架构。



步骤1. 创建项目

vapor new HelloMicroservice --template=authcd HelloMicroservice

--template=auth标志会添加带有认证功能的基础结构。对于微服务来说,这是一个好习惯——从一开始就考虑安全性。



步骤2. 项目结构

创建后,您将看到如下结构:

HelloMicroservice/├── Sources/│   ├── App/│   │   ├── Controllers/│   │   ├── Models/│   │   └── configure.swift│   └── Run/│       └── main.swift├── Tests/├── Dockerfile└── Package.swift

请注意Dockerfile——这是一个现成的容器化模板。没有Docker的微服务就像没有奶酪的披萨。



步骤3. 编写第一个端点

打开Sources/App/Controllers/UserController.swift(如果不存在则创建)。添加一个简单的方法:

import Vapor

struct HealthController: RouteCollection { func boot(routes: RoutesBuilder) throws { let health = routes.grouped("api", "health") health.get(use: checkHealth) } @Sendable func checkHealth(req: Request) async throws -> HTTPStatus { return .ok }}

这是经典的health-check——任何微服务的基础。现在在configure.swift中注册它:

// 在configure函数末尾try app.register(collection: HealthController())


步骤4. 启动并测试

vapor run

打开浏览器或终端:

curl http://localhost:8080/api/health# 响应: 200 OK

恭喜!您已

博客

书籍推荐