SPM搭建Perfect模版服务器
文章目录
【注意】最后更新于 October 2, 2018,文中内容可能已过时,请谨慎使用。
Perfect简介
{% github PerfectlySoft Perfect 60e44e4 width = 30% %}
目前比较流行服务端框架主要有Vapor
、Perfect
、Kitura
和Zewo
,他们各有长短,本人这次主要是使用Perfect
来写的,因为Perfect
的功能比较完善,在GitHub上具有1W+的星,而且有一个非常重要的原因提供了Perfect 中文文档。
Perfect 包括了您所期待的所有基本功能,包括路由
、websockets
基于 HTTP 的网络套接字、TLS
(SSL)通信加密、Mustache
模板和 Markdown
模板、JSON
结构化数据等等,以及全部其他所有 Swift 后台框架加在一起才有的 XML 结构化数据、苹果推送消息 APNS
、MqTT
消息队列和 SMTP
邮件发送,甚至大数据也支持。Perfect 的数据库支持非常广泛,其原生SQL驱动包括 MySQL
、SQLite
、PostgreSQL
和 MariaDB
,还支持 MongoDB
、Redis
、CouchDB
甚至还包括 FileMaker
(苹果自己的数据库 Swift 都不支持,Perfect 反过来支持——译者注)。Perfect 据说还部分支持微软的 ODBC
,即多种数据库的底层兼容界面——有点像 ORM
,但是以 C 函数库为基础。提到 ORM
数据库对象关系自动化管理,Perfect有 StORM
并完整实现了 PostgreSQL
、MySQL
、CouchDB
和 SQLite
。
搭建HTTP服务器
{% github it-boyer PerfectTemplate 20294e56 width = 30% %} 本章将引导您使用Swift和Perfect软件框架逐步设置一个简单的HTTP服务器。
创建Web应用
- 新建一个文件夹保存项目文件:
|
|
- 初始化项目,用
SPM
软件包管理器:
|
|
- 配置依赖
打开
Package.swift
文件进行编辑: 该文件在要求Swift编译的最低版本为3.0.0
,设置target
编译依存库PerfectHTTPServer
|
|
- 编码
|
|
- 编译和运行 现在项目就已经准备好,可以通过以下两个命令编译和运行:
|
|
成功之后,会打印:
|
|
设置Perfect HTTPServer服务器
注册路由和请求/响应句柄
打开Sources/iPerfect/main.swift
文件,把内容替换为以下程序:
|
|
- 编译运行
|
|
在浏览器上打开http://127.0.0.1:8181/
终止服务器:在终端控制台上用组合键control-c
可以随时停止服务器。
使用Xcode调试服务器
生成iPerfect.xcodeproj
Swift软件包管理器(SPM)能够为您的项目iPerfect
生成Xcode工程:
|
|
递归编译设置
- 设置递归编译项目目录中的所有
target
打开iPerfect.xcodeproj
,在检索项目软件库Library Search Paths
字典中新增路径:$(PROJECT_DIR)
,路径属性修改为recursive
。recursive
:遍历该目录,non-recursive
:默认路径设置;不遍历该目录。 如果路径的属性为recursive
,那么编译的时候在找库的路径的时候,会遍历该目录下的所有子目录的库文件。
PS:在搭建项目的时候,可以创建一个专门放库文件的文件夹并且设置其属性为
recursive
:即为$(PROJECT_DIR)/**
,相当于遍历项目文件同级下的所有路径(不推荐使用,项目大的话,影响编译的速度)。
- scheme运行在My Mac
在Xcode打开项目之后,选择可执行目标为
My Mac
,并选择正确的Swift工具链。 - 设置服务器的资源目录
为了使服务器能够访问您工程文件夹下的目录,比如html静态网页。
进入菜单命令
Product > Scheme > Edit Scheme…
,设置工作目录Use Custom Working Directory
为项目文件夹。
现在您就可以在Xcode中运行调试您的服务器了.
文章作者 iTBoyer
上次更新 2018-10-02