LoginSignup
13
12

More than 5 years have passed since last update.

【Swift】サーバーサイドSwift 〜Vapor 始めの第一歩〜【Vapor v0.13】

Posted at

サーバーサイドSwiftのフレームワークの一つである Vapor をはじめてみようと思うので、手順を書き残そうと思います。

こちらの記事を書いた2日後に、v0.12 から v0.13 のドキュメントに更新されていたので、v0.13用のドキュメントに従ってやってみました。

今回はハマることもなく非常に簡単に試すことができました。

環境

  • OS X: 10.11.5(15F34)
  • Xcode: Version 8.0 beta 2 (8S162m)
  • Toolchain: Swift Development Snapshot 2016-06-20 (a)
  • Vapor: v0.13

ドキュメント

https://vapor.readme.io/
今回は Vapor v0.13 のドキュメントの手順に従って進めていきます。

事前準備

Xcode8.0 beta 2 を事前にインストールし、インストール先をxcode-selectで選択します。
Xcode8 beta ダウンロード先

インストール後、

sudo xcode-select -s /Applications/Xcode-beta.app/

/Applications/Xcode-beta.app/部分は適宜自分のインストール先を指定

Swift3のインストール

ドキュメントには、Swfit3のインストール方法が、3種類書かれています。

  1. macOSへのインストール
  2. Ubuntuへのインストール
  3. Swiftenvを使用したインストール

macOSの方は1か3、
Ubuntuの方は2か3
の方法でインストールします。

ここでは、macOSでSwiftenvを使ったインストール方法を記載します。

Swiftenvからインストール

Swiftのバージョン切り替えツールをインストールします。(RubyのrbenvとかPythonのpyenvみたいなやつ)

Swiftenvをインストール

# Homebrewからインストール
brew install kylef/formulae/swiftenv

# パスを通す
echo 'if which swiftenv > /dev/null; then eval "$(swiftenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile

Swift3のインストール

# インストール
swiftenv install DEVELOPMENT-SNAPSHOT-2016-06-20-a
# インストールしたバージョンをグローバルに設定
swiftenv global DEVELOPMENT-SNAPSHOT-2016-06-20-a

確認

swift --version

> Apple Swift version 3.0-dev (LLVM c191431197, Clang c6195325c5, Swift add621a959)

3.0-dev になっていればOK

インストールされている全てのSwiftのバージョンを確認

swiftenv versions

詳しい使い方はこちらをご覧ください。

Toolboxのインストール

Vaporのコマンドラインツールをインストールします。

インストール

curl -sL toolbox.qutheory.io | bash

確認

vapor --help

ここで、vaporコマンドが使用できて、以下のようなヘルプ内容が出ればOKです。

Usage: vapor <new|build|run|fetch|clean|test|xcode|version|self|heroku|docker>
Join our Slack if you have questions, need help,
or want to contribute: http://slack.qutheory.io

CLIのアップデート

CLI自身をアップデートするときは次のようにします。

vapor self update

プロジェクトを作成

vapor new Hello

このコマンドでプロジェクトファイルをセットアップしてくれます。

セットアップが完了すると、オシャレなVaporのマークが出てきました。

スクリーンショット 2016-07-12 22.14.57.png

ディレクトリ構成

とりあえず、プロジェクト直下に移動し、2階層くらいまでのディレクトリ構成を表示してみます。

$ cd Hello/
$ tree -L 2
.
├── App
│   ├── Controllers
│   ├── Middleware
│   ├── Models
│   └── main.swift
├── Config
│   ├── app.json
│   ├── development
│   └── secrets
├── Localization
│   ├── default.json
│   ├── en.json
│   └── es.json
├── Package.swift
├── Procfile
├── Public
│   ├── images
│   └── styles
├── README.md
├── Resources
│   └── Views
└── app.json

APPの中にControllersやModels、Resourcesの中にViewsがありますね。
そして、何やら中核になりそうなmain.swiftというファイルがAPPの中にあります。

このmain.swiftに色々書いていきます。

main.swiftの編集

デフォルトで色々書いていますが、以下のように書き換えます。

main.swift
import Vapor
import VaporMustache

let drop = Droplet()

drop.get("hello") { request in
    return "Hello, world"
}

drop.serve()

dropletはVaporのコアクラスです。
Dropletの詳細はこちら

次に、同じくデフォルトでできている以下のファイルを削除します。

  • App/Controllers/UserController.swift
  • App/Models/User.swift
  • App/Middleware/SampleMiddleware.swift

ちょっと寄り道

import Vapor

let drop = Droplet()

Dropletクラスは、Vaporをimportすることで使えるようになります。
蒸気(vapor)を取り込んで雫(droplet)を生み出す。。洒落てますね〜。

コンパイル

vapor build

vapor buildコマンドは、中でswift buildを実行しているようです。

サーバー起動

ビルドが完了したらサーバーを起動させます。

vapor run serve

このコマンドでウェブサーバーが立ち上がります。

$ vapor run serve
Running Hello...
No servers.json configuration found.
Starting server at 0.0.0.0:8080

また、ポートを指定することもできます。

vapor run serve --port=8080

これで、ブラウザからhttp://localhost:8080へアクセスすると、今立ち上げたサーバーにアクセスすることができます。

ただ、ルートパスへは何も出力していないので、真っ白のページになっているかと思います。

先ほど、main.swiftで処理を記入したのはhelloというパスだったので、http://localhost:8080/helloにアクセスします。

すると、「Hello, world」と画面上に表示されるかと思います。

スクリーンショット 2016-07-10 18.58.26.png

このようにできれば完了です。

以上、始めの第一歩として触ってみました。

終わりに

v0.12でやたらとハマると思っていたら、今回はすんなりといけました。 :smile:
これからが楽しみです。

13
12
0

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
13
12