Swift Language
KituraによるSwift HTTPサーバー
サーチ…
前書き
Kitura
をKitura
迅速なサーバー
Kitura
は、Webサービスのために作成されたswiftで書かれたWebフレームワークです。 HTTPリクエストをセットアップするのはとても簡単です。環境には、XCodeがインストールされたOS Xまたはswift 3.0が実行されているLinuxが必要です。
こんにちは世界のアプリケーション
構成
まず、Package.swiftというファイルを作成します。これは、ライブラリがどこにあるかを迅速にコンパイラに伝えるファイルです。このhello worldの例では、GitHub reposを使用しています。 Kitura
とHeliumLogger
が必要Kitura
。次のコードをPackage.swiftの中に入れてください。それはプロジェクトの名前をkitura-helloworldと指定し、依存URLも指定しました。
import PackageDescription
let package = Package(
name: "kitura-helloworld",
dependencies: [
.Package(url: "https://github.com/IBM-Swift/HeliumLogger.git", majorVersion: 1, minor: 6),
.Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 1, minor: 6) ] )
次に、「ソース」という名前のフォルダを作成します。内部にmain.swiftというファイルを作成します。これは、このアプリケーションのすべてのロジックを実装するファイルです。このメインファイルに次のコードを入力します。
ライブラリのインポートとロギングの有効化
import Kitura
import Foundation
import HeliumLogger
HeliumLogger.use()
ルータを追加する。 Routerは、HTTP要求のパス、タイプなどを指定します。ここでは、 Hello worldを出力するGETリクエストハンドラを追加してから、リクエストからプレーンテキストを読み込んで返すポストリクエストを追加します。
let router = Router()
router.get("/get") {
request, response, next in
response.send("Hello, World!")
next()
}
router.post("/post") {
request, response, next in
var string: String?
do{
string = try request.readString()
} catch let error {
string = error.localizedDescription
}
response.send("Value \(string!) received.")
next()
}
サービスを実行するポートを指定する
let port = 8080
ルータとポートをバインドしてHTTPサービスとして追加する
Kitura.addHTTPServer(onPort: port, with: router)
Kitura.run()
実行する
Package.swiftファイルとResourcesフォルダを含むルートフォルダに移動します。次のコマンドを実行します。 Swiftコンパイラは、上記のリソースをPackage.swift内のPackagesフォルダに自動的にダウンロードし、main.swiftでこれらのリソースをコンパイルします。
swift build
ビルドが終了すると、この場所に実行ファイルが配置されます。この実行可能ファイルをダブルクリックすると、サーバーが起動します。
.build/debug/kitura-helloworld
検証
ブラウザを開き、 localhost:8080/get
urlを入力してEnterキーを押します。こんにちは世界のページが出てきます。
HTTPリクエストアプリを開き、プレーンテキストをlocalhost:8080/post
ます。応答文字列は、入力されたテキストを正しく表示します。