這篇文章給大家介紹如何用Swagger調(diào)用Harbor Registry的REST API,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)公司為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、手機(jī)APP定制開發(fā)、重慶小程序開發(fā)公司、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
Swagger是最流行的RESTful API開源工具,含有一整套代碼庫、編輯器、代碼生成器等,可用于API的描述、定義、生成以及可視化等方面。我們可以在http://www.swagger.io 查看它的詳細(xì)介紹,下載它的源碼并集成到項(xiàng)目中來。Harbor是VMware新近開源的企業(yè)級(jí)容器Registry項(xiàng)目(http://github.com/vmware/harbor),用戶可在私有環(huán)境中部署Harbor,實(shí)現(xiàn)容器鏡像的權(quán)限管理、圖形化管理、LDAP/AD認(rèn)證集成以及日志審計(jì)等功能。Harbor還提供RESTful API,其他容器管理平臺(tái)可以很方便地集成Harbor的功能。本文介紹如何使用Harbor內(nèi)嵌的Swagger工具,調(diào)用和測試RESTful API。
首先,我們來看看Swagger如何描述和定義RESTful API。Swagger提供在線所見即所得的編輯器(http://editor.swagger.io/),用戶可以在編輯器左側(cè)輸入符合Swagger規(guī)范的YAML或JSON配置,右側(cè)會(huì)根據(jù)輸入的內(nèi)容實(shí)時(shí)顯示出實(shí)際的效果,如果輸入有錯(cuò)誤,還會(huì)有提示出來教你如何改正,真的很方便!如何編寫符合規(guī)范的Swagger定義文件請(qǐng)參考(http://swagger.io/specification/)。
這個(gè)編輯器還支持將編輯好的YAML文件下載到本地,或者轉(zhuǎn)換成JSON格式,甚至還可以幫我們自動(dòng)生成測試的服務(wù)端(Mock Server)或客戶端,還有很多功能我們都可以去嘗試。
使用Swagger的目的無外乎兩點(diǎn):前后端的分離,按照契約進(jìn)行測試。所謂前后端分離,是指前后端分別有著各自的開發(fā)流程、構(gòu)建工具、測試等,通過RESTfulAPI來實(shí)現(xiàn)解耦,使得結(jié)構(gòu)清晰,關(guān)注點(diǎn)分離;按照契約進(jìn)行測試,是指前后端開發(fā)人員按照發(fā)布服務(wù)的請(qǐng)求路徑,參數(shù),類型達(dá)成一致,形成契約,它可能是JSON或者是YAML格式的。在實(shí)際開發(fā)過程中,契約的形成是一個(gè)不斷完善的過程,肯定會(huì)經(jīng)過多次修改、補(bǔ)充,Swagger恰恰滿足了這樣一個(gè)不斷變化完善的需求,實(shí)現(xiàn)前后端的分離,在進(jìn)行契約測試時(shí)盡早的發(fā)現(xiàn)差異,做出調(diào)整,將最后集成的風(fēng)險(xiǎn)降至最低。
Harbor的核心功能也采用RESTful API來實(shí)現(xiàn),在開發(fā)過程中采用Swagger編寫了一套可視化API規(guī)范,并作為項(xiàng)目的一部分提供給用戶使用。
Harbor項(xiàng)目采用兩種方式供用戶使用Swagger來展現(xiàn)或操控RESTful API。
一種是“靜態(tài)方式”,僅用Swagger來作為Harbor RESTful API 的展現(xiàn)和查閱工具。用戶只需從Harbor項(xiàng)目docs/目錄下找到swagger.yaml文件,用編輯器打開,全選、復(fù)制,粘貼到Swagger在線編輯器的左側(cè)代碼區(qū),右側(cè)就會(huì)呈現(xiàn)出可視化的Harbor RESTful API文檔頁面,便于查閱和參考。
另一種是“動(dòng)態(tài)方式”,將Swagger UI與Harbor REST服務(wù)部署在同一個(gè)Server中,用戶可以使用Swagger來操控并測試Harbor的RESTful API。此方法可能會(huì)修改數(shù)據(jù)庫中的數(shù)據(jù),因此不建議在生產(chǎn)系統(tǒng)中使用。部署方案如下圖所示:
在Harbor項(xiàng)目源代碼的docs/目錄下,有個(gè)prepare-swagger.sh的腳本文件,可以幫助用戶實(shí)現(xiàn)“動(dòng)態(tài)方式”部署。下文對(duì)相關(guān)步驟做簡要的說明,詳細(xì)信息請(qǐng)參閱文檔docs/configure_swagger.md:
(1)修改腳本文件中的SERVER_IP值,設(shè)置為當(dāng)前部署Harbor系統(tǒng)的宿主機(jī)IP地址,保存修改后,執(zhí)行該腳本。腳本會(huì)依次幫用戶下載Swagger軟件,解壓至Harbor項(xiàng)目vendors靜態(tài)資源目錄;將docs/目錄下的swagger.yaml文件拷貝至Harbor項(xiàng)目resources/yaml靜態(tài)資源目錄;根據(jù)用戶提供的SERVER_IP替換修改URL內(nèi)容。
(2)切換到Deploy目錄,修改docker-compose.yml這個(gè)文件,將新添加的Swagger靜態(tài)資源目錄通過volumes方式掛載到HarborUI的Dockercontainer中,使得SwaggerUI可以隨著HarborUI啟動(dòng)后一同發(fā)布給外部進(jìn)行訪問。
(3)用docker-compose命令重新構(gòu)建Harbor項(xiàng)目,清理之前遺留的容器內(nèi)容,重新啟動(dòng)新構(gòu)建好的Harbor項(xiàng)目鏡像。
下圖是部署好的Swagger UI頁面截圖。
通過Swagger UI 來觸發(fā)Harbor RESTful API時(shí)還需要注意“登錄狀態(tài)”問題,因?yàn)椴糠諥PI需要有session的信息。有兩種方法來配置。
方法一:先通過瀏覽器打開UI界面(注意:請(qǐng)務(wù)必保證Harbor UI的URL中的IP地址與之前部署Swagger UI是提供的SERVER_IP值是相同的),完成注冊(cè)(首次使用)、登錄;然后在同一瀏覽器中打開新的標(biāo)簽(tab)頁面,輸入如下Swagger UI地址,這樣就能確保在用戶登錄的狀態(tài)下操控HarborRESTful API:
http://<server_IP>/static/vendors/swagger/index.html
方法二:Harbor RESTful API 本身實(shí)現(xiàn)了Basic Authentication 認(rèn)證模式,但由于目前Swagger不支持從界面上輸入用戶名、密碼,造成訪問上不方便,感興趣的同學(xué)可以參考下面的鏈接(https://github.com/swagger-api/swagger-ui),嘗試修改Swagger實(shí)現(xiàn)Basic Authentication模式訪問。當(dāng)然,用戶也可以用命令
curl -u <用戶名:密碼>
的方式來訪問API,這樣就可以不用事先登錄HarborUI來直接調(diào)試API了。
關(guān)于如何用Swagger調(diào)用Harbor Registry的REST API就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站欄目:如何用Swagger調(diào)用HarborRegistry的RESTAPI
新聞來源:http://chinadenli.net/article18/gpcedp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、電子商務(wù)、定制開發(fā)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)