しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

KituraというSwiftのWebフレームワークを使ってみる

KituraというWebフレームワークでSwiftを動かしてみようと思います。
このフレームワークIBMが作っているようで、同社のクラウドサービスであるBluemixというPaasの上で動かす事ができます。

github.com

サンプルを動かしてみる

下コマンドで関連ソフトをインストールします。

brew install http-parser curl hiredis

次にSwiftをインストールします。
下ページの"Swiftのインストール"を参考にインストールします。

Swift Package Managerを使ってみる - しめ鯖日記

その後下コマンドを打てばポート8090でサンプルアプリケーションを立ち上げてくれます。

git clone -b develop https://github.com/IBM-Swift/Kitura
cd Kitura
make run

f:id:llcc:20160306214045p:plain

make runでerror: invalid usage: unknown argument: -Xというエラーに遭遇する事がありますが、Kitura-CI/build/Makefileの39行目のswift build $(CC_FLAGS) $(SWIFTC_FLAGS) $(LINKER_FLAGS)swift buildに変更する事でとりあえず動かす事はできます。

自分のKituraプロジェクトを作ってみる

下コマンドで初期プロジェクトを作成します。

mkdir MyApp
cd MyApp/
swift build --init

Package.swiftを以下のように書き換えます。

import PackageDescription

let package = Package(
    name: "myFirstProject",
    dependencies: [
        .Package(url: "https://github.com/IBM-Swift/Kitura-router.git", versions: Version(0,3,0)..<Version(0,4,0)),
    ])

Sources/main.swiftを以下のように修正します。

import KituraRouter
import KituraNet
import KituraSys

let router = Router()

router.get("/") {
    request, response, next in
    response.status(HttpStatusCode.OK).send("Hello, World!")
    next()
}

let server = HttpServer.listen(8090, delegate: router)
Server.run()

ここまで終わったらswift buildコマンドでビルドをします。

swift build

ビルドが終わったら以下コマンドでサーバーを立ち上げる事ができます。

.build/debug/myFirstProject

f:id:llcc:20160306214751p:plain

今回は試していませんが、他にもGRMustacheというテンプレートエンジンが利用できるようです。

他のSwift用Webフレームワーク

llcc.hatenablog.com

llcc.hatenablog.com

参考URL

IBM製 Swift Webアプリケーションフレームワーク&HTTPサーバ Kitura最速マスター - Qiita Swift で書ける Web フレームワーク「Kitura」を触ってみた | Developers.IO