Swift服務(wù)端開(kāi)發(fā)系列:(一)Mac上用Vapor搭建Swift服務(wù)端開(kāi)發(fā)環(huán)境

Swift服務(wù)端開(kāi)發(fā)系列完整版

swift服務(wù)端開(kāi)發(fā)系列

序言

互聯(lián)網(wǎng)的大潮正在持續(xù),app前端開(kāi)發(fā)正在走向平穩(wěn)甚至收縮期。swift的推出給蘋(píng)果公司又添加了一個(gè)護(hù)城河,隨著swift的開(kāi)源、跨平臺(tái)、后端服務(wù)器支持等,也給廣大開(kāi)發(fā)者稍多的職業(yè)選擇。雖然swift開(kāi)發(fā)在iPhone、iPad、Mac、iWatch等官方設(shè)備上迅速普及,swift在服務(wù)端的應(yīng)用也在迅速發(fā)展,能支持小級(jí)別項(xiàng)目,但服務(wù)端、跨平臺(tái)的商業(yè)化應(yīng)用還在萌芽階段,現(xiàn)在也不失為一個(gè)學(xué)習(xí)的好時(shí)機(jī)。

作為 “吃青春飯” 的程序員,不要局限于自己熟悉的業(yè)務(wù),不要局限于自己的編程語(yǔ)言,更不要局限了自己的人生維度。知識(shí)是無(wú)限的,用的確是相對(duì)有限的,基礎(chǔ)資料是相對(duì)固定的,思維是相對(duì)流動(dòng)的。最近有點(diǎn)想法,寫(xiě)個(gè)程序?qū)崿F(xiàn)下,需要穩(wěn)定的持續(xù)運(yùn)行在服務(wù)器上??紤]過(guò)Swift、Python、Java、PHP、Go、JS等語(yǔ)言,對(duì)這些語(yǔ)言都不太熟悉,經(jīng)過(guò)調(diào)研和平穩(wěn)過(guò)度的需要鎖定在Swift和Python二選一,最終選用Swift。

經(jīng)過(guò)一個(gè)月的折騰,終于將自己項(xiàng)目(基礎(chǔ)版)托管在Coding平臺(tái)和穩(wěn)定運(yùn)行在騰訊云上。Swift服務(wù)端開(kāi)發(fā)實(shí)踐,自己從未涉足的領(lǐng)域,踩過(guò)了不少坑,也走了不少?gòu)澛?,將?jiǎn)要的過(guò)程記錄下,為以后的服務(wù)擴(kuò)張做個(gè)鋪墊,還有很多未完成的部分,后續(xù)會(huì)根據(jù)需要逐步開(kāi)發(fā)和分享。

一、Swift服務(wù)端框架選擇—Vapor

工欲善其事必先利其器,又到了談到開(kāi)發(fā),必選框架的階段。swift服務(wù)端框架主要有Vapor、Perfect、Kitura(IBM出品)、Zewo等,嘗試過(guò)Perfect和Vapor,看過(guò)Kitura文檔了解不深,對(duì)Zewo不了解。

Perfect: 初次按照網(wǎng)上教程配置,最終未能有效的運(yùn)行起來(lái),語(yǔ)法與Swift相差較多,或許自己當(dāng)時(shí)知識(shí)不到位。Perfect框架功能確實(shí)強(qiáng)大,在初期是Swift服務(wù)端框架一哥的地位,最近聽(tīng)說(shuō)Perfect團(tuán)隊(duì)出了問(wèn)題,看到其Github庫(kù)快一年未有效更新了,我放棄Perfect。

Vapor: 環(huán)境搭建非常簡(jiǎn)單,完全基于Swift開(kāi)發(fā),無(wú)特殊的依賴(lài)庫(kù),API和源碼更易上手,提供的功能也非常豐富,比較適合初學(xué)者以及 Swift 純粹主義者,也是目前Github上所有Swift服務(wù)端框架中star是最多項(xiàng)目,開(kāi)發(fā)社區(qū)也是最大最活躍的。

[Swift服務(wù)端框架功能對(duì)比(節(jié)選)](https://blog.csdn.net/byeweiyang/article/details/80128908
https://docs.vapor.codes/3.0/)

二、在Mac上安裝Swift

Mac開(kāi)發(fā)Swift服務(wù)端,強(qiáng)烈推薦官方IDE工具Xcode,可以在A(yíng)pp Store中下載安裝, 最新版Xcode(大于11.3版本)自帶最新版的Swift(5.1.3版本)。

打開(kāi)終端,輸入指令,查看已安裝Swift版本號(hào)

swift -version

版本相關(guān)信息

Apple Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15)
Target: x86_64-apple-darwin19.0.0

終端輸入

swift

打開(kāi)Swift程序,來(lái)上一段牛哄哄的算法??

var a = 2, b = 3, c = a + b
一段牛哄哄的算法

輸入:exit退出swift程序

三、在Mac上安裝Vapor

Vapor 3.0 官方開(kāi)發(fā)文檔

在終端中輸入 brew 安裝指令,國(guó)內(nèi)網(wǎng)絡(luò)相對(duì)較慢,請(qǐng)耐心等待

brew install vapor/tap/vapor

安裝完成后,查看Vapor版本號(hào)

user@bogon ~ % vapor --version
Vapor Toolbox: 3.1.10

輸入指令

vapor --help

查看vapor支持的操作指令如下

$vapor --help
Usage: vapor command

Join our Slack if you have questions, need help,
or want to contribute: http://vapor.team

Commands:
       new Creates a new Vapor application from a template.
           Use --template=repo/template for github templates
           Use --template=full-url-here.git for non github templates
           Use --web to create a new web app
           Use --auth to create a new authenticated API app
           Use --api (default) to create a new API
     build Compiles the application.
       run Runs the compiled application.
     fetch Fetches the application's dependencies.
    update Updates your dependencies.
     clean Cleans temporary files--usually fixes
           a plethora of bizarre build errors.
      test Runs the application's tests.
     xcode Generates an Xcode project for development.
           Additionally links commonly used libraries.
   version Displays Vapor CLI version
     cloud Commands for interacting with Vapor Cloud.
    heroku Commands to help deploy to Heroku.
  provider Commands to help manage providers.

Use `vapor command --help` for more information on a command.

四、用Vapor創(chuàng)建Swift服務(wù)端

vapor目前還沒(méi)有UI操作面板,指令使用也相對(duì)簡(jiǎn)單。讓我們來(lái)體驗(yàn)一番吧

pwd 確認(rèn)項(xiàng)目存放的目錄,在當(dāng)前目錄下新建項(xiàng)目Hello

vapor new Hello

初次創(chuàng)建,需要下載工具庫(kù),國(guó)內(nèi)網(wǎng)絡(luò)相對(duì)較慢,請(qǐng)耐心等待。創(chuàng)建完成后,終端會(huì)打印一個(gè)紅桃形狀的log

image.png

進(jìn)入項(xiàng)目目錄中

cd Hello

輸入指令,生成Xcode關(guān)聯(lián)文件,初次構(gòu)建需要下載Vapor關(guān)聯(lián)庫(kù),耗時(shí)較長(zhǎng),耐心等待

vapor xcode

打開(kāi)Xcode,運(yùn)行

Generating Xcode Project [Done]
Select the `Run` scheme to run.
Open Xcode project?
y/n> y
Opening Xcode project...

在Xcode中使用My Mac運(yùn)行Run 會(huì)看到控制臺(tái)輸出:

Server starting on http://localhost:8080

在瀏覽器中輸入

http://localhost:8080/hello

看到 Hello, world! 說(shuō)明服務(wù)端成功運(yùn)行。

推薦閱讀:Swift服務(wù)端開(kāi)發(fā)系列完整版

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容