99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
一葉知秋 頭像
蘋果2袋
2
一葉知秋

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

發(fā)布時(shí)間:2017-01-04 21:25  回復(fù):0  查看:3318   最后回復(fù):2017-01-04 21:25  

本篇文章算是一個(gè)開頭,接下來會(huì)持續(xù)更新使用Swift3.0開發(fā)服務(wù)端相關(guān)的技術(shù)文章。當(dāng)然,我們使用目前使用Swift開發(fā)服務(wù)端較為成熟的框架Perfect來實(shí)現(xiàn)。Perfect框架是加拿大一個(gè)創(chuàng)業(yè)團(tuán)隊(duì)開發(fā)的,目前是Perfect2.0版本,關(guān)于Perfect框架,下方會(huì)詳細(xì)的介紹。本篇博客會(huì)演示一個(gè)完整的Demo, 該Demo完全由Swift3.0開發(fā),其中包括服務(wù)端和iOS客戶端,數(shù)據(jù)庫采用的是MySQL。

進(jìn)一步說,本篇文章將會(huì)演示一個(gè)使用Swift3.0開發(fā)的記事本,當(dāng)然該記事本的服務(wù)端和iOS端都是使用Swift 3.0開發(fā)的。該記事本包括登錄,注冊(cè),添加筆記,更新筆記,刪除筆記以及查詢筆記,簡(jiǎn)單的說就是對(duì)筆記的CURD操作。本篇博客算是Swift3.0服務(wù)端開發(fā)系列博客的開始,我們先通過今天這篇博客整體的看一下Perfect框架可以做的事情,然后一步一步的開發(fā)出一個(gè)完整的項(xiàng)目。

本篇文章先對(duì)Perfect框架進(jìn)行了簡(jiǎn)單介紹,然后演示由Perfect開發(fā)的Demo, 最后給出相應(yīng)Demo的部分技術(shù)實(shí)現(xiàn)。

一、Perfect框架簡(jiǎn)介

Perfect框架是目前比較完善的Swift服務(wù)端框架之一,當(dāng)然其他的還有Vapor等其他的開源框架,橫向的對(duì)比了一下,還是Perfect的功能全面一些,目前Perfect的最新版本是2.0,由加拿大一創(chuàng)業(yè)團(tuán)隊(duì)開發(fā)并維護(hù)。Perfect框架也是開源的,在Github上可以找到相關(guān)的源代碼(Perfect-Github地址:https://github.com/PerfectlySoft/Perfect)。Perfect的官網(wǎng)地址:https://www.perfect.org/,官網(wǎng)上有相關(guān)的Demo以及使用文檔,關(guān)鍵是其開發(fā)文檔有中文版的,這一點(diǎn)還是比較好的,官方開發(fā)文檔地址:https://www.perfect.org/docs/index_zh_CN.html。

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

因?yàn)镾wift目前最新的版本是3.0,所以Perfect2.0只能在最新的Swift3.0版本上進(jìn)行編譯。當(dāng)然Swift語言支持Linux,iOS和Mac OS,所以Perfect框架也可以在上述的三種系統(tǒng)中進(jìn)行編譯。我們可以使用Perfect開發(fā)Web應(yīng)用,API等服務(wù)端應(yīng)用。更多關(guān)于Perfect框架的詳細(xì)內(nèi)容,請(qǐng)移步于Github或者官網(wǎng)進(jìn)行了解,在此就不做過多贅述了。

二、示例展示

接下來我們先來看一下使用Swift3.0開發(fā)的服務(wù)端和iOS端的小Demo。在博客的開頭我們也提到過,我們要展示的Demo是一個(gè)簡(jiǎn)單的筆記。包括登錄、注冊(cè)、筆記的增刪改查等功能。我們的服務(wù)端和iOS客戶端都是使用Swift3.0來實(shí)現(xiàn)的,當(dāng)然服務(wù)端就是使用的上述的Perfect框架。接下來我們整體的看一下Demo的效果,后續(xù)的博客會(huì)給出更為具體的實(shí)現(xiàn)方式。

1.Demo功能介紹

下方就是我們Demo運(yùn)行的具體效果,首先輸入用戶名點(diǎn)擊下一步,如果用戶已注冊(cè),讓其輸入密碼登錄。登錄后進(jìn)入筆記列表頁面,可以對(duì)相應(yīng)的筆記進(jìn)行增刪改查操作,具體做法如下所示。下圖左邊就是iOS客戶端運(yùn)行的效果,右邊就是MySQL中的數(shù)據(jù)更新情況。

因?yàn)镈emo的功能比較簡(jiǎn)單,所以我們數(shù)據(jù)庫的表結(jié)構(gòu)也是非常簡(jiǎn)單的,user表中存儲(chǔ)的就是注冊(cè)用戶的信息,content表中存儲(chǔ)的就是筆記的相應(yīng)信息,在content中有一個(gè)外鍵是userID, 每條內(nèi)容通過userID外鍵與相應(yīng)的用戶想關(guān)聯(lián)。換句話說,contentId與userId是一對(duì)多的關(guān)系。關(guān)于該Demo的數(shù)據(jù)庫設(shè)計(jì)細(xì)節(jié),后期會(huì)詳細(xì)的介紹。

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

2.示例的項(xiàng)目結(jié)構(gòu)

下方就是服務(wù)端+iOS客戶端的目錄結(jié)構(gòu),當(dāng)然項(xiàng)目比較簡(jiǎn)單,沒怎么分層。iOSClientForPerfect就是iOS客戶端工程,PerfectTemplate就是服務(wù)端的工程。這兩個(gè)Project位于同一個(gè)WorkSpace中。在PerfectTemplate中會(huì)有一些依賴的庫,Source文件夾下除了PerfectTemplate文件中的內(nèi)容外,其他的都是依賴包,這些依賴包可以通過Package.swift文件進(jìn)行配置。

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

下方是本工程中的Package.swift文件中的內(nèi)容,也就是本工程中所依賴的包。

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

3、服務(wù)器log日志記錄

從上述依賴的包中我們可以清楚的看到依賴了日志過濾以及日志寫入的包,如果你的服務(wù)端要支持相關(guān)的日志記錄功能的話,那么就需要添加上述的這兩個(gè)依賴包了。下方就是我們工程記錄的日志文件。主要記錄了本工程的請(qǐng)求和相應(yīng)以及Sql執(zhí)行的相關(guān)信息,如下所示:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

4.服務(wù)端API組織結(jié)構(gòu)

下方就是本篇博客所演示Demo的服務(wù)端API。數(shù)據(jù)傳輸?shù)母袷綖镴SON,iOS客戶端將會(huì)對(duì)服務(wù)器端返回的JSON進(jìn)行請(qǐng)求。全是POST請(qǐng)求,相應(yīng)報(bào)文包括list,result以及errorMessage。list中存儲(chǔ)的就是從服務(wù)端獲取的相關(guān)數(shù)據(jù),而result中存儲(chǔ)的是接口請(qǐng)求狀態(tài),SUCCESS標(biāo)志著請(qǐng)求成功,F(xiàn)AILURE標(biāo)志著請(qǐng)求失敗。當(dāng)請(qǐng)求失敗時(shí),errorMessage會(huì)有相應(yīng)的報(bào)文信息。當(dāng)然這種API是比較常規(guī)的的做法,當(dāng)然在請(qǐng)求報(bào)文中,應(yīng)該添加上公共報(bào)文的,公共報(bào)文中可以添加token等公共信息,當(dāng)然本Demo中沒有添加,下方是部分API

(1)、通過用戶名查詢用戶是否存在接口

請(qǐng)求方式:POST

請(qǐng)求地址:/queryUserInfoByUserName

請(qǐng)求參數(shù):

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

響應(yīng)報(bào)文:

(2)、用戶登錄或者注冊(cè)接口

請(qǐng)求方式:POST

請(qǐng)求地址:/login,/register

請(qǐng)求參數(shù):

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

響應(yīng)報(bào)文:

(3)、獲取相應(yīng)用戶的筆記列表接口

請(qǐng)求方式:POST

請(qǐng)求地址:/contentList

請(qǐng)求參數(shù):

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

響應(yīng)報(bào)文:

其他的就不一一的展示了。上述的Demo就先到這兒,等我們介紹完P(guān)erfect的基本知識(shí)后,再對(duì)上述的Demo的具體實(shí)現(xiàn)細(xì)節(jié)進(jìn)行剖析。本篇博客對(duì)上述Demo就不做過多贅述了。

三、Perfect框架的獲取和編譯

上面算是Perfect框架的引子, 接下來我正式的進(jìn)入Perfect框架的主題。當(dāng)然我們以Mac OS下的Perfect為準(zhǔn),如果你使用的是Linux系統(tǒng),Perfect官網(wǎng)上有相關(guān)的配置過程,關(guān)于Linux下的Perfect在此就不做過多贅述了。

1.獲取Perfect框架的模板

首先我們從Github上Clone一份Perfect框架的模板(PerfectTemplate:https://github.com/PerfectlySoft/PerfectTemplate)。具體執(zhí)行命令以及執(zhí)行結(jié)果如下所示:

git clone https://github.com/PerfectlySoft/PerfectTemplate

cd PerfectTemplate

ls

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

2.編譯模板

在PerfectTemplate目錄中有一個(gè)Package.swift文件,其中可以指定工程的名稱以及工程所依賴的包。首先我們打開Package.swift,指定我們工程的文件名。具體如下所示。

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

指定完工程名,接下來就該編譯我們的模板工程了,下方是編譯并執(zhí)行上述工程的命令。因?yàn)槭状尉幾g時(shí)需要從github上下載相關(guān)的依賴包,所以首次編譯的過程是比較漫長(zhǎng)的,等待一段時(shí)間,編譯和執(zhí)行的命令如下:

編譯:swift build

執(zhí)行:.build/debug/ZeLuLiPerfectDemo

還是那句話,首次編譯的過程會(huì)比較慢,下方就是首次編譯是需要下載的各種依賴包,然后再進(jìn)行編譯的過程:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

編譯完成后,會(huì)提示你鏈接并運(yùn)行的命令,如果執(zhí)行該命令后,你的Perfect服務(wù)端的服務(wù)就啟動(dòng)了,如下所示:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

執(zhí)行完畢后,我們就可以通過瀏覽器訪問我們的Perfect服務(wù)器了。默認(rèn)端口是8181,所以我們?cè)L問的本機(jī)地址是localhost:8181。下方是訪問上述地址返回的具體信息,如下所示:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

我們可以在Source文件夾下的main.swift文件中對(duì)我們的服務(wù)進(jìn)行相關(guān)的配置,我們可以改一下端口和返回的內(nèi)容:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

重新編譯并運(yùn)行,結(jié)果如下所示:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

3.生成Xcode項(xiàng)目

編譯并運(yùn)行成功后,我們可以使用Swift3.0自帶的包管理器,生成一個(gè)Xcode項(xiàng)目。下方就是生成的Xcode的Project文件的命令

swift package generate-xcodeproj

運(yùn)行上面的命令就會(huì)生成相應(yīng)的xcodeproj文件,我們就可以使用Xcode來管理我們的項(xiàng)目了。因?yàn)镻roject框架僅支持Swift3.0, 所以我們需要使用Xcode8.0+版本來打開生成的xcodeproj文件。如下:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

你就可以打開上面生成的xcodeproj文件了,可以通過Xcode來編譯和運(yùn)行我們的Perfect項(xiàng)目,當(dāng)然要選擇Mac運(yùn)行。運(yùn)行完畢后,我們的服務(wù)就啟動(dòng)了,就可以在瀏覽器中進(jìn)行訪問了,如下所示:

Swift3.0服務(wù)端開發(fā)(一) Perfect完整示例概述

本篇博客就先到這兒,下篇博客仍然會(huì)對(duì)Project框架進(jìn)行介紹,在使用該框架時(shí),我們還會(huì)涉及一些Perfect框架的部分源碼的解析。

Perfect完整Demo的github分享地址為: https://github.com/lizelu/PerfectDemo ,在以后的博客中,我們會(huì)陸續(xù)的對(duì)該Demo的具體實(shí)現(xiàn)細(xì)節(jié)進(jìn)行講解,本篇博客算是一個(gè)Perfect框架的概述。

作者:青玉伏案

您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?