再次使用Swift服務(wù)端框架Vapor3

時(shí)隔一年時(shí)間,Vapor已經(jīng)升級(jí)到了Vapor3,是時(shí)候再用用看了。去年的Vapor還不能夠商用,今年已經(jīng)可以用在小項(xiàng)目上面了,讓我們拭目以待吧。先試試在MAC上面是怎么使用的。

前提

  • Xcode9.3及以后版本
  • Swift 4.1
    在終端上輸入
swift --version

可以看到電腦上面swift版本。

1.安裝Vapor

使用如下命令安裝。

brew install vapor/tap/vapor

安裝好后,使用如下命令驗(yàn)證vapor版本。

vapor --version

后續(xù)想更新vapor時(shí),使用如下

brew upgrade vapor

2.創(chuàng)建項(xiàng)目

首先,cd到你要放置項(xiàng)目的目錄中,然后使用如下命令創(chuàng)建出一個(gè)項(xiàng)目。

vapor new Hello --branch=beta

創(chuàng)建好后,使用如下命令創(chuàng)建出Xcode能夠直接運(yùn)行的項(xiàng)目。

vapor xcode

運(yùn)行完畢后,會(huì)讓你選擇是否馬上運(yùn)行xcode,輸入y即可。

當(dāng)xcode打開后,選擇Run,然后運(yùn)行,控制臺(tái)會(huì)輸出:

Starting server on 0.0.0.0:8080

這表明,服務(wù)已啟動(dòng),打開瀏覽器,輸入

localhost:8080/hello

即可看到返回結(jié)果。

{"hello":"world"}

使用vapor new Hello創(chuàng)建時(shí),默認(rèn)創(chuàng)建API模板,返回的是json格式的數(shù)據(jù),可以通過vapor new Hello --template=web的方式修改創(chuàng)建的模板。

  • --template=api API
  • --template=web Web

更新vapor依賴

在項(xiàng)目中,有個(gè)一文件Package.swift,其中,dependencies是管理vapor依賴性的,當(dāng)依賴發(fā)生變化時(shí),使用如下命令更新

vapor update

解決依賴錯(cuò)誤

使用如下命令大多數(shù)可以解決

vapor clean

3.項(xiàng)目結(jié)構(gòu)

結(jié)構(gòu)如下圖所示:

項(xiàng)目結(jié)構(gòu)
.
├── Public
├── Sources
│   ├── App
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── boot.swift
│   │   ├── configure.swift
│   │   └── routes.swift
│   └── Run
│       └── main.swift
├── Tests
│   └── AppTests
└── Package.swift

Public

公共的資源,包括圖片,格式等等。響應(yīng)一個(gè)請(qǐng)求時(shí),最先檢查該文件并返回。
比如有一個(gè)請(qǐng)求localhost:8080/hello.ico會(huì)馬上去檢查Public/hello.ico,如果存在,就返回。

Sources

包括了項(xiàng)目中所有可運(yùn)行的代碼。包括了App和Run兩個(gè)文件夾。

App

最重要的文件夾,所有的邏輯都在這個(gè)文件夾內(nèi)。

  • Controllers:大多數(shù)是用于接收請(qǐng)求和返回一些簡短的數(shù)據(jù)。
  • Models:存放數(shù)據(jù)模型。
  • boot.swift:啟動(dòng)的時(shí)候需要做的服務(wù)可以寫到里面。
  • configure.swift:配置文件
  • routes.swift:路由文件

Tests

測試文件

最后編輯于
?著作權(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)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,840評(píng)論 4 61
  • 風(fēng)從草的深淵升起 掠過四下 電光刻下羚角的影子 雷雨就要來了 那些還來不及 來不及準(zhǔn)備的小生命 將帶著最后一點(diǎn)鼓噪...
    萬象峰年閱讀 315評(píng)論 0 2
  • When I say "Do the work," what I really mean is simply st...
    第三個(gè)選項(xiàng)閱讀 460評(píng)論 0 0
  • Revea圖層解析,對(duì)于初學(xué)者來理解整個(gè)布局很有幫助,正規(guī)版是收費(fèi)的,大家懂得可以安裝破解版的來爽一爽 1.啟動(dòng)R...
    MMOTE閱讀 698評(píng)論 0 0
  • 報(bào)錯(cuò)信息 (type=Not Acceptable, status=406) 這是因?yàn)闆]有設(shè)置請(qǐng)求頭信息引起的 解...
    何德何能者閱讀 1,532評(píng)論 0 0

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