のぶLab.

流しのソフトウェアエンジニアの雑記帳. Android, Scala, Clojure, Ruby on Railsなど

KituraでサーバサイドSwift

IBMのサーバサイドフレームワークKituraを使ってSwift製のWebアプリケーションを作ってみます

環境

Mac OSX El Capitan 10.11.4 Swift 2.2 XCode 7.3

Swiftのインストール

自分の環境のインストーラをダウンロードしてインストールします。 Swift.org - Download Swift

$ swift buildを実行して「swift-buildが見つからないよ」というようなエラーが出た場合はSnapshotsの"Trunk Development"をインストールして下さい。

XCodeのToolchainを変更(XCode7.3の場合)

  1. XCodeを開き Preferences > Components > ToolchainsXcode Swift 2.2 Snapshot XXXXを選択
  2. パスを通す
    $ export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"

Kituraアプリケーションの作成

  1. 適当なところに新しいディレクトリを作成

    $ mkdir myFirstProject

  2. Swift projectのinitialize

    $ cd myFirstProject
    $ swift build --init
    

  3. 以下のようなディレクトリ構成になっているかと思います
    myFirstProject
    ├── Package.swift
    ├── Sources
    │   └── main.swift
    └── Tests
     └── empty
    

Package.swiftにKaturaの依存関係を追加

Package.swiftを以下のように編集します

import PackageDescription

let package = Package(
    name: "myFirstProject",
    dependencies: [
        .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 7)
    ])

main.swiftを編集

Sources/main.swiftを以下のように編集します

import Kitura
import KituraNet
import KituraSys

let router = Router()

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

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

Compile

Mac OSの場合は以下のコマンドを実行

$ swift build -Xcc -fblocks -Xswiftc -I/usr/local/include -Xlinker -L/usr/local/lib

サーバ起動

$ .build/debug/myFirstProject

ブラウザからhttp://localhost:8090/にアクセスするとWebページが表示されます

次回(あるかわからないけど)はBluemixにKituraアプリをデプロイしてみようかと思っています。