Swift服務(wù)端框架Vapor實(shí)現(xiàn)GET請(qǐng)求

前提條件:請(qǐng)參考我的文章再次使用Swift服務(wù)端框架Vapor3

什么是GET請(qǐng)求

  • GET請(qǐng)求是HTTP協(xié)議中的一個(gè)方法檬寂。
  • GET從服務(wù)器上獲取數(shù)據(jù)哄芜,也就是所謂的查揣炕,僅僅是獲取苞笨,并不會(huì)修改數(shù)據(jù)族阅。
  • GET交互方式是冪等的篓跛,即多次對(duì)同一個(gè)URL的請(qǐng)求,返回的數(shù)據(jù)是相同的坦刀。
  • GET請(qǐng)求的參數(shù)會(huì)附加在URL之后愧沟,以?分割URL和傳輸數(shù)據(jù)鲤遥,多個(gè)參數(shù)用&連接沐寺。
  • GET請(qǐng)求URL編碼格式采用的是ASCII編碼,而不是Unicode盖奈,所有非ASCII字符都要編碼之后再傳輸混坞。
  • GET請(qǐng)求傳輸數(shù)據(jù)大小不能超過2KB。
  • GET請(qǐng)求安全性低钢坦,因?yàn)槭敲魑膫鬏敗?/li>

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

#1.打開終端
#2.創(chuàng)建項(xiàng)目
vapor new HelloVapor --branch=beta

這個(gè)過程會(huì)花費(fèi)十來分鐘的樣子究孕。最終成功后結(jié)果如圖:


image.png
#3.進(jìn)入項(xiàng)目
cd HelloVapor
#4.構(gòu)建項(xiàng)目,這一步也會(huì)花費(fèi)比較久時(shí)間场钉,建議使用VPN蚊俺。
vapor build
#5.運(yùn)行項(xiàng)目
vapor run

運(yùn)行完畢后,如圖所示:


image.png

此時(shí)逛万,我們打開瀏覽器泳猬,瀏覽:
http://localhost:8080/hello

點(diǎn)擊后如圖所示:


image.png
#6.關(guān)閉vapor的運(yùn)行,使用組合鍵:Control+C即可
#7.創(chuàng)建出xcode能運(yùn)行的項(xiàng)目
vapor xcode -y

運(yùn)行完畢后宇植,Xcode會(huì)自動(dòng)打開項(xiàng)目得封。

實(shí)現(xiàn)GET請(qǐng)求

進(jìn)入項(xiàng)目中,Sources/App/Routes目錄中指郁,找到Routes.swift文件忙上。刪除掉setupRoutes()方法中的內(nèi)容,添加代碼闲坎,最終Routes.swift內(nèi)容如下:

 import Vapor

extension Droplet {
    func setupRoutes() throws {
        
        /*
         路由關(guān)閉的情況:
         1.響應(yīng)了請(qǐng)求
         2.拋出異常
         */
        
        //最基本的GET請(qǐng)求
        get("welcom") { request in
            return "Hello"
        }
        
        //URL中包含了/
        get("foo", "bar", "baz") { request in
            return "You request /foo/bar/baz"
        }
        
        //動(dòng)態(tài)路由到某個(gè)HTTP方法
        add(.get, "hh") { request in
            return "Dynamically router"
        }
        
        //重新定向
        get("baidu") { request in
            return Response(redirect: "http://www.baidu.com")
        }
        
        //返回json數(shù)據(jù)
        get("json") { request in
            var json = JSON()
            try json.set("number", 123)
            try json.set("text", "unicorns")
            try json.set("bool", false)
            return json
        }
        
        //模糊匹配路徑
        get("anything", "*") { request in
            return "Matches anything anything/anything route"
        }
        
        //404錯(cuò)誤
        get("404") { request in
            throw Abort(.notFound)
        }
        
        //錯(cuò)誤的請(qǐng)求
        get("error") { request in
            throw Abort(.badRequest)
        }
        
    }
}

我們依次在瀏覽器中輸入如下鏈接可以看到結(jié)果:
http://localhost:8080/welcom
http://localhost:8080/foo/bar/baz
http://localhost:8080/hh
http://localhost:8080/baidu
http://localhost:8080/json
http://localhost:8080/anything/a/b/c/d
http://localhost:8080/404
http://localhost:8080/error

結(jié)果依次如下所示:


image.png

image.png

image.png

image.png

image.png

image.png

錯(cuò)誤:


image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疫粥,一起剝皮案震驚了整個(gè)濱河市茬斧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梗逮,老刑警劉巖项秉,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異慷彤,居然都是意外死亡娄蔼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門底哗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岁诉,“玉大人,你說我怎么就攤上這事跋选√檠ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵前标,是天一觀的道長(zhǎng)属划。 經(jīng)常有香客問我,道長(zhǎng)候生,這世上最難降的妖魔是什么同眯? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮唯鸭,結(jié)果婚禮上须蜗,老公的妹妹穿的比我還像新娘。我一直安慰自己目溉,他們只是感情好明肮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缭付,像睡著了一般柿估。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陷猫,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天秫舌,我揣著相機(jī)與錄音,去河邊找鬼绣檬。 笑死足陨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的娇未。 我是一名探鬼主播墨缘,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了镊讼?” 一聲冷哼從身側(cè)響起宽涌,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝶棋,沒想到半個(gè)月后护糖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嚼松,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锰扶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片献酗。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖坷牛,靈堂內(nèi)的尸體忽然破棺而出罕偎,到底是詐尸還是另有隱情,我是刑警寧澤京闰,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布颜及,位于F島的核電站,受9級(jí)特大地震影響蹂楣,放射性物質(zhì)發(fā)生泄漏俏站。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一痊土、第九天 我趴在偏房一處隱蔽的房頂上張望肄扎。 院中可真熱鬧,春花似錦赁酝、人聲如沸犯祠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衡载。三九已至,卻和暖如春隙袁,著一層夾襖步出監(jiān)牢的瞬間痰娱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工菩收, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猜揪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓坛梁,卻偏偏與公主長(zhǎng)得像而姐,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子划咐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理拴念,服務(wù)發(fā)現(xiàn)钧萍,斷路器,智...
    卡卡羅2017閱讀 134,638評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,863評(píng)論 25 707
  • 因?yàn)橐Y(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,408評(píng)論 0 12
  • 每次出門政鼠,都能長(zhǎng)進(jìn)一點(diǎn)风瘦,大腦從來都是不愿意停止思考,做了公般,想了万搔,總會(huì)得到些什么。 悠悠八天過得很快官帘,就像媽媽開心地...
    周洋_圖樂園閱讀 345評(píng)論 1 3
  • 肺與脾的關(guān)系瞬雹,主要表現(xiàn)在氣的生成、津液的輸布待著兩個(gè)方面刽虹。 肺吸人之清氣和脾化生的水谷精氣酗捌,是...
    鬼谷子之天易閱讀 566評(píng)論 0 0