Swift 服务端开发
所属分类:ios | 发布于 2024-01-28 14:31:29
今天这篇文章可厉害了,Swift不仅可以作为客户端语言开发iOS App和macOS App,还可以作为服务端语言开发Web服务。
Swift服务端框架
Swift服务端框架,不是很多,经过一番摸索,推荐两个
1、Vapor
github:https://github.com/vapor/vapor
官方描述:A server-side Swift HTTP web framework。
Vapor是功能最强大的Swift服务端开发框架,提供了众多的扩展。
2、Hummingbird
github:https://github.com/hummingbird-project/hummingbird
官方描述:Lightweight,flexible HTTP server framework written in Swift。
Hummingbird是轻量级的HTTP server framework。
框架选择
这两个框架都可以开发Web服务
Vapor提供了更强大的功能,更多的扩展,但同时也引入了更多的依赖。
Hummingbird提供了基本的功能,但是需要引入的依赖几乎都是Swift官方的。
经过比对,最终选择依赖更好的HummingBird作为HTTP server framework。
Hummingbird初体验
import Hummingbird
let app = HBApplication(configuration: .init(address: .hostname("127.0.0.1", port: 8080)))
app.router.get("hello") { request -> String in
return "Hello"
}
try app.start()
app.wait()
注意:hostname为127.0.0.1时只能本机访问,如果要局域网上的其它也能设备访问,需要设置为0.0.0.0
HummingbirdMustache
Mustache是“logic-less”模版语言,通常应用在web和mobile平台。
Hustache Mustache已经被设计出和Hummingbird框架搭配使用的,没有任何依赖,而且可以单独使用的库。
1、基本使用
// Load your templates from the filesystem
let library = HBMustacheLibrary("folder/my/template/are/in")
// Render an object with a template
let output = library.render(object, withTemplate: "myTemplate")
2、Using with Hummingbird
在Hummingbird中,如果想使库文件保持独立,推荐使用扩展的方式使用
extension HBApplication {
var mustache: HBMustacheLibrary {
get { self.extensions.get(\.mustache) }
set { self.extensions.set(\.mustache, value: newValue) }
}
}
extension HBRequest {
var mustache: HBMustacheLibrary { self.application.mustache }
}
// load mustache templates from templates folder
application.mustache = try .init(directory: "templates")