VAPOR SERIES
Vapor 服务端系列(Vapor 3)
这一组覆盖「服务端」全部章节,从工具箱、路由、异步,到 Fluent 数据库建模、关系、认证、测试与上线。全部代码为源站一致的 Vapor 3 写法。
SwiftNIO 原理
Vapor 跑在 SwiftNIO 之上。本文带你俯瞰 SwiftNIO 的架构:事件循环、Channel 流水线、Bootstrap、ByteBuffer,以及 Promise/Future 的协作方式。
控制器与 RouteCollection
当项目变大、路由越来越多时,一条条手写 router 会难以维护。本文教你用控制器(Controller)把零散路由组织成独立模块,让代码清晰、好维护。
配置数据库
Vapor 3 原生支持 SQLite、MySQL、PostgreSQL 三种关系型数据库。本文带你认识它们,并学会用 configure.swift 把 SQLite 配起来开始开发。
Fluent 模型持久化
Fluent 是 Vapor 3 里的 ORM(对象关系映射)。本文带你定义第一个数据模型 Acronym,并让它通过 Migration 自动建表、持久化到数据库。
数据库 CRUD 操作
RESTful API 提供了一套用 URL + HTTP 方法调用 CRUD 的标准方式。本文用 Vapor 3 代码实现 Acronym 的增、查、改、删四个接口。
切换到 PostgreSQL
之前为了方便一直用基于文件的 SQLite,但它不支持外键约束。本文用 Docker 起 PostgreSQL,并在工程里改接 FluentPostgreSQL,验证外键约束真正生效。
其它测试用例
前面只写了一个用例,这里再多写几个练手:通过 API 新增用户、按 id 取单个用户,以及测试 User/Acronym、Acronym/Category 之间的关联。
在 Linux 上测试
部署到 Linux 与本地 Mac 的 Foundation 实现不同,必须保证在 Linux 上也能跑通测试。本文讲 LinuxMain 手动登记测试用例,以及用 Docker 本地模拟 Linux 跑全套。
部署到私有服务器
不想依赖第三方平台?本文教你在自己的 Ubuntu 云服务器上用 Docker 跑起 PostgreSQL,再用 nginx 做端口转发,把 Vapor 3 应用部署上线。