Swift製Webフレームワーク Vaporの紹介2018


Vaporとは

Vaporは、Swift製のWebフレームワークです。
公式URLは https://vapor.codes/ で、Vapor 本体のリポジトリ(https://github.com/vapor/vapor) には 

Vapor is a web framework for Swift.
It provides a beautifully expressive and easy to use foundation for your next website, API, or cloud project. 

と説明が書いてあります。
スター数も多く(2018年12月現在1万5千程度)、これからが楽しみなフレームワーク&コミュニティです。
今回はVaporアドベントカレンダー2018の初日として、インストールとHelloWorldをしてみようと思います。

環境構築

for MacOS

公式(https://docs.vapor.codes/3.0/install/macos/)

Xcode(9.3 以上)が必要なのでApp Storeからダウンロードします。(https://itunes.apple.com/us/app/xcode/id497799835?mt=12)
また最新のVapor3には Swift 4.1 以上が必要なので、バージョンを確認します。

$ swift --version
Apple Swift version 4.2.1 (swiftlang-1000.11.42 clang-1000.11.45.1)
Target: x86_64-apple-darwin17.7.0

次にVaporのプロジェクト作成が簡単にできるVapor ToolBoxをインストールします。

$ brew install vapor/tap/vapor

Vapor ToolBoxがインストールできたことを確認します。

$ vapor --help

for Ubuntu

公式(https://docs.vapor.codes/3.0/install/ubuntu/)
Vaporは以下のバージョンのUbuntuでサポートされています。
最新のUbuntu18ではサポートされていないので気をつけてください。

Version Codename
16.10 Yakkety Yak
16.04 Xenial Xerus
14.04 Trusty Tahr

以下のスクリプトでVaporのリポジトリをAPTで参照できるようにします。
このスクリプトはサポートされていないバージョン以外で動かすとエラーが出てしまいます。

eval "$(curl -sL https://apt.vapor.sh)"

リポジトリの参照をマニュアルでやりたい方はこちらのコマンドを実行してください。

wget -q https://repo.vapor.codes/apt/keyring.gpg -O- | sudo apt-key add -
echo "deb https://repo.vapor.codes/apt $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/vapor.list
sudo apt-get update

APTを使ってswiftとvaporをインストールします。

$ sudo apt-get install swift vapor

インストールされたことを確認します。

$ swift --version
$ vapor --help

HelloWorld

環境構築が完了したので早速プロジェクトを作成します。
プロジェクトの作成には new コマンドを使用します。

$ vapor new リポジトリ名

また、RailsのAPIモードのようにフラグをつけることでテンプレートを選ぶことができます。
今回は Web テンプレートを使用してプロジェクトを作成します。
フラグを付けずにプロジェクトを作成するとAPIテンプレートで作成されます。

Name Flag Description
API --template=api Fluentデータベースを使ったJSON API
Web --template=web Leafテンプレートを使ったを含むHTMLウェブサイト
Auth --template=auth-template Fluent DBとAuthを使ったJSON API

今回はmyAppプロジェクトをWebテンプレートで作成します。

$ vapor new myApp --template=web

プロジェクト名のディレクトリが作成されれます。
ディレクトリの中に入り、 build コマンドでビルドします。

$ cd myApp
$ vapor build

ビルドが完了したら run コマンドでアプリを実行します。

$ vapor run

ブラウザで http://localhost:8080/ にアクセスすると起動が確認できます。

おまけ

Vaporのユニークな機能として、Xcodeを使うことができます。
xcodeコマンドで .xcodeproj ファイルが作成されます。

$ vapor xcode

作成された.xcodeproj を開き、iOSのように三角ボタンでビルドすることができます。
ビルドが終わったらrun コマンドでアプリを実行します。

$ vapor run