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/