Vapor
在 Swift 開源之後,開發者們便開始將這語言往更多層面去發展,而 web app 便是其中一項。 Vapor 是一款以 Swift 作為主要語言的 Server 建構服務,讓我們可以透過它來開發 Web 相關的應用; 對於 iOS 開發人員而言,Swift 可以用來開發 web app 是一件有趣的事情, 其代表著我們可以使用同一個語言來開發一個產品,從 server 到 client。
安裝方式
不同於在安裝 iOS 第三方套件的流程,Vapor 需要透過 terminal 來安裝相關內容: 首先,得先安裝 Vapor 的 CLI
curl -sL toolbox.qutheory.io | sh
安裝完之後,便可以在 terminal 底下使用 vapor 的指令。
建立新專案
我們可以透過下方的指令,來建立一個新專案:
vapor new ProjectName
其中第三方套件的管理方式,是使用 Swift Package Manager, 所以我們會在目錄下看到一個 Package.swift 和 Package.pins, 這方面倒是有些像 CocoaPods 所使用的 Podfile 的概念。
使用 Xcode 開發
有了專案後,你可以選擇直接打開 main.swift 來進行開發, 但如果比較喜歡使用 Xcode 開啟一個專案,而非單一檔案, 則可以透過下方指令才建立 .project。
vapor xcode
這樣系統就會幫我們產生 .project 檔,開發起來就和原本寫 iOS 差不多了。
Server 的相關設定
Vapor 的 server 相關設定會放置在 Config 的資料夾底下, 其中包含五個 .json 檔案:
- app.json
- crypto.json
- droplet.json
- fluent.json
- server.json 像是我們可以在 server.json 裡頭看到 host、port 的相關內容。
Build & Run
若你是開啟 Xcode 專案的方式,那麼 build 和 run 的方式就和以往開發 iOS 的方式一樣; 但若是沒有建立 .project 的話,也可以透過 vapor build 以及 run 的方式,就是在目錄下執行:
vapor build && vapor run
Droplet
在看到 Vapor 的 icon 之後,不難想像為何其主要的核心物件名稱為 droplet。 在初始時,main.swift 會有基本的 demo code, 我們可以直接在 try drop.setup() 下方加入一些內容。
drop.get("/") {
request in
return "Hello World!"
}
這樣便會在 0.0.0.0:8080/ 時,得到 Hello World!, 而也可以透過路徑來帶入參數,像是 0.0.0.0:8080/name/Archie 的寫法:
drop.get("/name", ":name", handler: {
request in
if let name = request.parameters["name"]?.string {
return "Hello \(name)!"
}
return "Error retrieving parameters."
})
當連過去時,便會顯示 Hello Archie!。
Views Vapor 將 Views 放置在 /Resources/Views 裡頭,並可以使用 drop.view(“檔案名稱”) 的方式回傳畫面:
drop.get("/view") { request in
return try drop.view("demoView.html")
}
以上便是 Vapor 的一些基本的簡單介紹,有興趣的人可以一起研究研究!