ServerSideSwiftでHello Worldをしてみる


Hello World

こんにちは、fummicc1です。今回は、Swiftでサーバーサイドを実装してみようということで記事にしました。

Kitura

KituraとはSwiftでサーバーサイドを実装するためのフレームワークです。他にもPerfectやVaporなどがあります。

Setup

環境

  • Xcode 10.2
  • Swift 5

Kitura導入

まずは、今回のためのディレクトリを作成しましょう。

mkdir KituraHelloWorld
cd KituraHelloWorld

次に、kituraをインストールして、プロジェクトの初期化を行います。(インターネットからダウンロードをするので時間がかかります。)

brew tap ibm-swift/kitura
brew install kitura
kitura init

これで、初期設定ができました。次に、xcodeでプロジェクトを開いていきます。

open KituraHelloWorld.xcodeproj/

上のコマンドでXcodeを立ち上げてくれます。

開いたら、Cmd + 1でファイルツリーを開き、Routesフォルダに新しく、HelloWorldRoutes.swiftを作成します。

作成したHelloWorldRoutes.swiftに以下の記述をします。

func initializeHelloWorldRoutes(app: App) {
    app.router.get("/helloWorld") { (request, response, next) in
        response.send("Hello World!")
    }
}

ここでは、GETリクエストに対しての処理を記述しています。ルーティングも指定していて、第一引数で指定できます。今回は、/helloWorldです。

次に、このinitializeHelloWorldRoutesApplication.swiftのAppクラスで呼んであげます。

App.swift
public class App {
    let router = Router()
    let cloudEnv = CloudEnv()

    public init() throws {
        // Run the metrics initializer
        initializeMetrics(router: router)        
    }

    func postInit() throws {
        // Endpoints
        initializeHealthRoutes(app: self)
        initializeHelloWorldRoutes(app: self) // ここを追加!
    }

    public func run() throws {
        try postInit()
        Kitura.addHTTPServer(onPort: cloudEnv.port, with: router)
        Kitura.run()
    }
}

これで、完成です。あとは、Cmd + R でXcodeがローカルホストを立ち上げてくれます。URLはこちらです。


無事できました。Swiftだけでオンラインじゃんけんゲームとか作れると面白いと思うので今度頑張って作ってみたいですね!

参考記事