Swagger的學(xué)習(xí)總結(jié)

Swagger:REST APIs文檔生成工具。Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)。

是一種API設(shè)計(jì)工具,能更好地實(shí)現(xiàn)前后端分離:Swagger - 前后端分離后的契約 。

一些環(huán)境部署與搭建:

讓接口測(cè)試成為合格的橋梁——本地搭建 Swagger-UI 環(huán)境搭建

Swagger入門教程

主要使用swagger-ui 和 swagger-editor。swagger-ui展示swagger-editor生成的api文檔,api文檔格式可以是yaml或json。(感覺(jué)是swagger-ui可以在線測(cè)試使用,交互;swagger-editor只是生成文檔)


有關(guān)Swagger的一些個(gè)人理解:

Swagger是REST APIs文檔生成工具。

主要的工作量應(yīng)該在于Swagger文檔的編寫,而文檔的編寫需要遵循一定的規(guī)范,即Swagger API Spec。Swagger API Spec是Swagger用來(lái)描述REST API的語(yǔ)言,可以用YAML和JSON表示。

Swagger文檔的編寫可以采用以下方式:

(1)手動(dòng)編寫Swagger文檔。要對(duì)SwaggerSpec很熟悉。可以利用在線編輯器Swagger editor(http://editor.swagger.io/#/)驗(yàn)證YAML格式的內(nèi)容是否違反Swagger spec,Swagger editor會(huì)標(biāo)出錯(cuò)誤并且給予格式提醒。所以說(shuō)手動(dòng)編寫要對(duì)YAML或者JSON語(yǔ)法非常熟悉。但是這種方法相對(duì)好上手。

(2)Swagger文檔應(yīng)該可以從代碼注釋中自動(dòng)生成。目前在參考這個(gè)教程:http://michal.karzynski.pl/blog/2016/06/19/building-beautiful-restful-apis-using-flask-swagger-ui-flask-restplus/?utm_source=tuicool&utm_medium=referral。因?yàn)閷?duì)API和FLASK等相關(guān)內(nèi)容不太熟悉,還在學(xué)習(xí)中。

Swagger-UI是一套HTML/CSS/JS框架用于解析遵守Swagger spec的JSON或YML文件,展示swagger-editor生成的API文檔,還可以在其中調(diào)試API。這是官方demo的地址:http://petstore.swagger.io/

Swagger-UI界面也可以進(jìn)行修改,包括進(jìn)行中文配置等。

下面是一個(gè)比較好的Swagger-UI說(shuō)明:Swagger-UI用戶手冊(cè) 。


FLASK

使用python的Flask實(shí)現(xiàn)一個(gè)RESTful API服務(wù)器端

近些年來(lái),REST成為web services和APIs的標(biāo)準(zhǔn)架構(gòu)。

python的Flask框架可以輕松實(shí)現(xiàn)一個(gè)RESTful服務(wù)。

Flask python web框架。

Flask很簡(jiǎn)單,micro-framework,所有有很多extensions配合使用,可以實(shí)現(xiàn)更多的功能。

Flask-RESTPlus:更方便地搭建REST APIs。核心功能是,可以結(jié)合Swagger UI自動(dòng)生成交互性的API文檔。

API的組織方式: API namespaces, RESTful resources 和 HTTP methods。
Namespaces:允許API定義劃分為多個(gè)文件,每一個(gè)是API的一部分,用于不同的 URL prefix(前綴)。
RESTful resources:組織API成不同的endpoints(與不同的數(shù)據(jù)類型有關(guān))


另外需要搞懂的一些點(diǎn):

1. RESTful API

先理解API接口?。?!

想問(wèn)一下什么是API接口,具體是什么意思? -- 知乎

API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開(kāi)發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。

簡(jiǎn)單的說(shuō),就是通過(guò)某一預(yù)先定義的渠道讀/寫數(shù)據(jù)的方式。

下面這篇算是解決了我的困惑==

利用「接口」做產(chǎn)品時(shí)我們?cè)撊绾嗡伎迹?/a>

一般接口包含以下幾個(gè)內(nèi)容:

接口地址:顧名思義就是接口的地址,以網(wǎng)址的形式展現(xiàn),你通過(guò)發(fā)送請(qǐng)求給這個(gè)網(wǎng)址來(lái)對(duì)接口進(jìn)行交互操作。
請(qǐng)求方法:
請(qǐng)求參數(shù):即傳輸參數(shù)的時(shí)候要帶的一些參數(shù),一般文檔中會(huì)用表格的形式清晰的說(shuō)明。當(dāng)我向接口發(fā)送攜帶請(qǐng)求參數(shù)的請(qǐng)求時(shí),都要攜帶什么字段,規(guī)則是什么。
返回內(nèi)容:返回內(nèi)容一般會(huì)以json或是XML的形式返回。
錯(cuò)誤代碼:

REST -- REpresentational State Transfer 直接翻譯:表現(xiàn)層狀態(tài)轉(zhuǎn)移。

怎樣用通俗的語(yǔ)言解釋REST,以及RESTful?--知乎

REST描述的是在網(wǎng)絡(luò)中client和server的一種交互形式;REST本身不實(shí)用,實(shí)用的是如何設(shè)計(jì) RESTful API(REST風(fēng)格的網(wǎng)絡(luò)接口);【其實(shí)是要設(shè)計(jì)一種合適的API,RESTful的】

理解RESTful架構(gòu)

總結(jié)一下什么是RESTful架構(gòu):

(1)每一個(gè)URI代表一種資源;

(2)客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;

(3)客戶端通過(guò)四個(gè)HTTP動(dòng)詞,對(duì)服務(wù)器端資源進(jìn)行操作,實(shí)現(xiàn)"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。

2. Mock server

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

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

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