PiaojinSwiftServergitHub地址
基于Perfect的Swift3.1服务器开发案例
开发环境 mac os,Xcode8.3,Swift3.1
建议先去https://www.perfect.org/docs/gettingStartedFromScratch_zh_CN.html
查阅官方文档在往下读
1.本项目数据库采用MySql所以必须先安装好MySql
2.main.swift文件中引入相关模块
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
3.创建一个路由Routes,我这边封装到一个自定义类中即相当于SpringMVC中的控制器,每个Routes相当于控制器中的处理请求的方法
import Foundation
import PerfectHTTP
/// 用于接受请求并根据请求创建响应内容的句柄函数格式。
public typealias RequestHandler = (HTTPRequest, HTTPResponse) -> ()
//创建一个类,类似springMVC中的控制器
public class MainController : NSObject{
let testRequestHandler : RequestHandler = {
(request : HTTPRequest, response : HTTPResponse)
in
response.setBody(string: "路由句柄已经收到,hello piaojin!")
response.completed()
}
let testRequestHandler2 : RequestHandler = {
(request : HTTPRequest, response : HTTPResponse)
in
response.setBody(string: "路由句柄已经收到,hello piaojin2!")
response.completed()
}
//路由,用于处理一个请求
public lazy var route : Routes = {
var tempRoute : Routes = Routes()
//add方法相当于添加一个拦截特定请求的方法
tempRoute.add(method: .get, uri: "/testRoutes", handler:self.testRequestHandler)
tempRoute.add(method: .get, uri: "/testRoutes2", handler:self.testRequestHandler2)
return tempRoute
}()
public override init() {
super.init()
}
}
4.创建服务器,这块可以查阅官方文档
/// MARK: 第1步创建一个服务
// Create HTTP server.
let server = HTTPServer()
/// MARK: 第2步创建一个路由管理控制器相当于springMVC中的控制器(自定义,可以直接跳过,直接创建路由)
let controller : MainController = MainController()
/// MARK: 第3步在服务器上注册路由,路由的注册必须在服务器启动之前(server.start())
server.addRoutes(controller.route)
// Set a listen port of 8080
server.serverPort = 8080
// Set a document root.
// This is optional. If you do not want to serve static content then do not set this.
// Setting the document root will automatically add a static file handler for the route /**
server.documentRoot = "./webroot"
do {
/// MARK: 第4步启动服务
// Launch the HTTP server.
try server.start()
} catch PerfectError.networkError(let err, let msg) {
print("Network error thrown: \(err) \(msg)")
}
任何疑问发邮件:(804488815@qq.com)