技术:Swift5.7、Vapor4.0、服务器、本地服务器、Vapor基本使用
运行环境:
Swift5.7 + Xcode14 + MacOS12.6 + Docker Desktop + Azure Data Studio
Homebrew、Vapor 、Postman、Azure Data Studio 、DBeaver 、Docker Desktop
安装HomeBrew、安装Vapor、自行安装Postman(测试API)、自行安装Azure Data Studio - (Postgres数据库)
创建了一个Vapor项目
使用Postman访问了Vapor的默认路由和hello路由
- 安装
Homebrew- MacOS的包管理器
终端指令/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装 vapor
终端指令brew install vapor
- 检查Vapor是否安装成功
终端指令vapor --help出现下图表示安装成功
4. 创建Vapor项目
终端指令 - 其中XY-Vapor-API表示项目名称vapor new XY-Vapor-API
name: XY-Vapor-API Would you like to use Fluent? (--fluent/--no-fluent) y/n> y fluent: Yes db: Postgres (Recommended) Would you like to use Leaf? (--leaf/--no-leaf) y/n> n leaf: No 这上面几句表示 1.是否使用Fluent 。Fluent表示Orm。它是一个对象关系映射器 - 项目使用 2.使用那个数据库 - 我这里使用Postgress 3. 是否使用叶子 - 不使用 - 叶子表示一个模板语言。就像制作一个网页一样
- 使用Xcode打开
vapor xocde
原因是 表示 没有给该方案设置自定义工作目录
[ WARNING ] No custom working directory set for this scheme, using /Users/liyuhong/Library/Developer/Xcode/DerivedData/XY-Vapor-API-godrxlkftzjdvncdelssjgmebuut/Build/Products/Debug



通过终端 输入
lsof -i:8080
liyuhong@liyuhongdeMac-mini XY-Vapor-API % lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Run 9360 liyuhong 12u IPv4 0x61be8aab9b1e8631 0t0 TCP localhost:http-alt (LISTEN)
通过终端的指令 kill
kill -9 PID号杀死端口
是我们的SPM清单
它是一个Swift包管理器
Vapor大量使用它
是没有Xcode的项目文件
那是因为它像一个包裹
Controllers、Migrations、Models
Controllers 提供了一个待办事项的清单
在控制器内部对逻辑进行分类,而不是将它全部放在一个文件中
Migrations 和数据库一起使用 、所以我们将进行所谓的数据迁移
这就是准备我们的数据库,这意味着在我们的数据库创建新表
Models - 这就是我们数据库中数据的模型。
Configure - 我们有配置功能
这里只有一个功能,它配置我们将使用的数据库
它添加了我们迁移,并运行routes函数,然后routes函数是 我们所有的路由。都是如此不同的端点的地方。它们将被命中
我们将通过我们的iOS应用程序请求。
如果我们访问hello 那么就会执行hello函数
AppTests.swiftVapor没有默认测试。 而我们创建的项目提供了一个可以使用的单元测试.
这里单元测试就是启动应用程序。我们要去设置路线
我们不会对这个系列进行单元测试
因为我们有Docker组合文件。
docker-compose.yml 、Dockerfile这配置了我们的API以运行并让数据库在DockerFile文件中运行。
这里用于实际创建Docker映像的内容。老实说。我不知道这两个文件的所有内容。
使我们项目中在Package Swift中定义的包的指定版本