Swift 服务端开发

所属分类:ios | 发布于 2024-01-28 14:31:29

今天这篇文章可厉害了,Swift不仅可以作为客户端语言开发iOS App和macOS App,还可以作为服务端语言开发Web服务。

Swift服务端框架

Swift服务端框架,不是很多,经过一番摸索,推荐两个

1、Vapor

github:https://github.com/vapor/vapor

官网:https://vapor.codes/

官方描述: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()

注意:hostname127.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")

 

 

 

 

 

文哥博客(https://wenge365.com)属于文野个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com

备案号:粤ICP备18108585号 友情链接