LoginSignup
9

More than 5 years have passed since last update.

Vaporを使って、サーバーサイドSwiftやってみた

Posted at

今回の目的

try! swiftのセッションで サーバーサイドSwift というのを知ったので、とりあえず、ローカルの環境で動かしてみる。

いろいろ調べると、Vaporというライブラリを使うと良さそうなので、Vaporを使って、サーバーサイドSwiftをやってみる。

環境

今回は、以下のような環境で行いました。

ソフト バージョン
OS X El Capitan 10.11.3(15D21)
Swift 3.0-dev (LLVM b361b0fc05, Clang 11493b0f62, Swift 24a0c3de75)
Vapor 0.2.9

セットアップ

適当なディレクトリに移動後、以下のコマンドを実行して、プロジェクトの設定を行います。

swift build --init

プロジェクトが作成されると、以下のファイルとディレクトリが作成されます。

  • .gitignore
  • Package.swift
  • Sources/main.swift
  • Tests
    • 空のディレクトリ

まず、Package.swiftを開いて、Vaporをプロジェクトに追加します。

Package.swift
import PackageDescription

let package = Package(
    name: "ServerSideIO",
    dependencies: [
        .Package(url: "https://github.com/qutheory/vapor.git", majorVersion: 0),
    ]
)

アプリの作成

Vaporを使用したアプリでは、まず、Applicationのインスタンスを作成します。

main.swift
let app = Application()

ここで、作成したインスタンスに対し、アクセスしたいエンドポイントを定義していきます。

main.swift
app.get("/") { request in
    return "Hello, world"
}

もちろん、JSONの取得ができるようにもできます。

main.swift
app.get("/json") { request in
    return try Json([
        "string": "hello, world"
    ])
}

サーバーを起動させるには、Application#startを呼び出します。

main.swift
app.start()

ポートを指定して、サーバーを起動させることもできます。

main.swift
app.start(port: 8080)

上記まで、まとめると、以下のようなコードになります。

main.swift
import Foundation
import Vapor

let app = Application()

app.get("/") { request in
    return "Hello, world"
}

app.get("/json") { request in
    return try Json([
        "string": "hello, world"
    ])
}

print("Starting: port 8080")

app.start(port: 8080)

まとめ

今回は、簡単なものを作ってみたので、Vaporのコードなど見ながら、もう少し、本格的なものを作ってみようかと思います。

今回のコードは、Githubの nhamada/ServerSideIOに上げてあります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9