Perfect.org
Perfect是一组完整、强大的工具箱、软件框架体系和Web应用服务器,可以在Linux、iOS和macOS (OS X)上使用。该软件体系为Swift工程师量身定制了一整套用于开发轻量、易维护、规模可扩展的Web应用及其它REST服务的解决方案,这样Swift工程师就可以实现同时在服务器和客户端上采用同一种语言开发软件项目。
构建初学者项目 以下将克隆并构建一个空的启动项目。它将启动将在您的计算机上的端口8181上运行的本地服务器:
1
2
3
4
git clone https://github.com/PerfectlySoft/PerfectTemplate.git
cd PerfectTemplate
swift build
.build/debug/PerfectTemplate
您应该看到以下输出:
1
[INFO] Starting HTTP server localhost on 0.0.0.0:8181
服务器现在正在运行并等待连接。访问http://localhost:8181/以查看问候语。点击“control-c”终止服务器。
您可以查看PerfectTemplate的完整源代码。
配置Package
clone下来的仓库,找到package修改为下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import PackageDescription
let package = Package(
name: "Server",
products: [
.executable(name: "Server", targets: ["Server"])
],
dependencies: [
//http 服务器
.package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", from: "3.0.0"),
//MySql
.package(url: "https://github.com/PerfectlySoft/Perfect-MySQL.git",from: "3.4.0"),
//Mustache模版语言
.package(url: "https://github.com/PerfectlySoft/Perfect-Mustache.git", from: "3.0.0")
],
targets: [
.target(name: "Server", dependencies: ["PerfectHTTPServer","PerfectMySQL","PerfectMustache"])
]
)
- name 和 target 可以按照自己的意愿修改,⚠️注意的是MySql,后面会讲到
- 删除掉原来的
PerfectTemplate.xcodeproj
, 在终端中输入以下内容:swift package generate-xcodeproj
打开生成的文件,确保您已选择可执行目标并将其选中以在“我的Mac”上运行。您现在可以直接在Xcode中运行和调试服务器。
在Xcode中
Swift Package Manager(SPM)可以生成一个Xcode项目
处理报错
这时候你会发现很多报错my_bool ,== 之类的几十种报错,不要慌主要原因是Mysql版本过高导致的, 在终端 mysql –version 查询MySQL版本。
mysql Ver 8.0.13 for osx10.14 on x86_64 (Homebrew)
解决办法: 卸载MySQL,然后重新安装:终端输入以下命令:
brew uninstall mysql
brew install mysql@5.7
brew install mysql@5.7 && brew link mysql@5.7 --force
然在查询MySQL版本确认
mysql Ver 14.14 Distrib 5.7.25, for osx10.14 (x86_64) using EditLine wrapper
然后重新开启就没有报错了,注意勾选Mac运行
MySQL
安装数据库工具
Navicat Premium
SQLPro for MySql 我用的这个
安装MySQL
- 通过brew 安装
brew install mysql
- 手动安装MySQL:https://dev.mysql.com/downloads/mysql/ 推荐
配置
1
2
3
4
5
#开启MySQL服务
mysql.server start
#初始化MySQL配置向导
mysql_secure_installation
建表
建立连接
建DB建表
搭建HTTP服务器
demo
无MySQl数据库版 实现login / profile / photo传输
demo
建立MySql
demo
有问题可以联系Email