Swift Express - ExpressにインスパイアされたSwift製フレームワーク
SwiftはiOS/Mac OSXアプリを開発するプログラミング言語ですが、オープンソース化されたことで利用範囲が拡大しています。その一つがサーバサイドでの利用です。しかし実行できるとは言え、大事なのはフレームワークでしょう。 すでに幾つかのサーバサイドフレームワークが出ていますが、今回はSwift Expressを紹介します。名前の通り、Expressに影響を受けたフレームワークです。
Swift Expressの使い方
Swift Expressのサンプルコードです。結構分かりやすいのではないかと思います。
func testItems(request:Request) throws -> [String: Any] {
let newItems = request.query.map { (k, v) in
(k, v.first!)
}
let items = ["sky": "blue", "fire": "red", "grass": "green"] ++ newItems
let viewItems = items.map { (k, v) in
["name": k, "color": v]
}
if let reason = request.query["throw"]?.first {
throw NastyError.Fatal(reason: reason)
}
return ["test": "ok", "items": viewItems]
}
app.get("/render.html") { request in
let items = try testItems(request)
return Action.render("test", context: items)
}
この結果は次のようになります。
ユーザから入力された情報をそのまま返す場合は次のようになります。
app.get("/echo") { request in
return Action.ok(request.query["call"]?.first)
}
Swift ExpressはシンプルなMVCフレームワークになっていますので、ちょっとしたサーバサイドのシステムを作るのに向いていそうです。アプリと連携するWeb APIサーバを構築するのに使ってみてはいかがでしょう。
Swift ExpressはSwift製、GNU Affero General Public Licenseのオープンソース・ソフトウェアです。
Express: Swift Web Application Framework crossroadlabs/ExpressSite: Web site of Swift Express: http://swiftexpress.io/