サーチ…


前書き

KituraKitura迅速なサーバー

Kituraは、Webサービスのために作成されたswiftで書かれたWebフレームワークです。 HTTPリクエストをセットアップするのはとても簡単です。環境には、XCodeがインストールされたOS Xまたはswift 3.0が実行されているLinuxが必要です。

こんにちは世界のアプリケーション

構成

まず、Package.swiftというファイルを作成します。これは、ライブラリがどこにあるかを迅速にコンパイラに伝えるファイルです。このhello worldの例では、GitHub reposを使用しています。 KituraHeliumLoggerが必要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ます。応答文字列は、入力されたテキストを正しく表示します。

ここに画像の説明を入力



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow