Swift × Kitura で HelloWorld!!!
Swiftでサーバプログラミングもできるようになったみたいなので試しに触ってみました。
第1弾はKituraフレームワークです。
実行環境
ステップ1:導入
Kituraの公式サイトの手順通りにやっていきます。 Kitura "Hello World" example
# Kituraのパッケージリポジトリにbrewでアクセスできるようにする
$ brew tap ibm-swift/kitura
# KituraをInstall
$ brew install kitura
$ mkdir HelloKitura $ cd HelloKitura # Kituraのテンプレートプロジェクトを作成 $ kitura init
ここまでやればKituraのXcodeProjectが出来ているので開きましょう。
$ open HelloKitura.xcodeproj
そのあとはXcode側でソースコードを編集していきます!
たくさんWarningが出てたりKituraモジュールが無いとエラーが出ていますが、なぜかビルドは出来るので気にせず行きましょう!(笑)
※出ない場合もあるっぽいです。よく分からない...
ステップ2:HelloWorldを表示する
HelloKitura/Sources/Application/Application.swift
public class App { let router = Router() let cloudEnv = CloudEnv() 省略 func postInit() throws { // Capabilities initializeMetrics(app: self) // Endpoints initializeHealthRoutes(app: self) // 追加したコード・・・① router.get("/") { request, response, next in response.send("Hello, World!!!") next(); } } }
Application.swiftファイルに①のコードを追加した後に、ビルド対象をHelloKituraに変更する(Xcode起動時はHelloKitura-Packageになっている)
変更してCmd + Rで起動してhttp://localhost:8080をブラウザで開いてHelloWorldが表示されていれば完成です!
番外編(Warning対応)
10数個のWarningはほとんど以下のものです。
'characters' is deprecated: Please use String or Substring directly
どうやらXcode9.1から発生するようになったWarningみたいです。
Xcode9.1で'characters' is deprecated: Please use String or Substring directlyのワーニングが出るようになった - Qiita
なので以下のように直してあげればOKです。
// 修正前 if method.characters.count == 0 { // 'characters' is deprecated: Please use String or Substring directly method = FastCGIServerRequest.defaultMethod } // 修正後 if method.count == 0 { method = FastCGIServerRequest.defaultMethod }
Kituraの公式サイトの手順通りに沿って特につまずく所もなくローカルでHelloWorld表示できました。 次はPerfectフレームワークを使ってHelloWorldやってみようと思います!