這篇文章給大家介紹如何用Swagger調用Harbor Registry的REST API,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)公司為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設計服務,主要包括成都網(wǎng)站建設、成都網(wǎng)站設計、手機APP定制開發(fā)、重慶小程序開發(fā)公司、宣傳片制作、LOGO設計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗豐富的經(jīng)驗,可以確保每一個作品的質量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
Swagger是最流行的RESTful API開源工具,含有一整套代碼庫、編輯器、代碼生成器等,可用于API的描述、定義、生成以及可視化等方面。我們可以在http://www.swagger.io 查看它的詳細介紹,下載它的源碼并集成到項目中來。Harbor是VMware新近開源的企業(yè)級容器Registry項目(http://github.com/vmware/harbor),用戶可在私有環(huán)境中部署Harbor,實現(xiàn)容器鏡像的權限管理、圖形化管理、LDAP/AD認證集成以及日志審計等功能。Harbor還提供RESTful API,其他容器管理平臺可以很方便地集成Harbor的功能。本文介紹如何使用Harbor內嵌的Swagger工具,調用和測試RESTful API。
首先,我們來看看Swagger如何描述和定義RESTful API。Swagger提供在線所見即所得的編輯器(http://editor.swagger.io/),用戶可以在編輯器左側輸入符合Swagger規(guī)范的YAML或JSON配置,右側會根據(jù)輸入的內容實時顯示出實際的效果,如果輸入有錯誤,還會有提示出來教你如何改正,真的很方便!如何編寫符合規(guī)范的Swagger定義文件請參考(http://swagger.io/specification/)。
這個編輯器還支持將編輯好的YAML文件下載到本地,或者轉換成JSON格式,甚至還可以幫我們自動生成測試的服務端(Mock Server)或客戶端,還有很多功能我們都可以去嘗試。
使用Swagger的目的無外乎兩點:前后端的分離,按照契約進行測試。所謂前后端分離,是指前后端分別有著各自的開發(fā)流程、構建工具、測試等,通過RESTfulAPI來實現(xiàn)解耦,使得結構清晰,關注點分離;按照契約進行測試,是指前后端開發(fā)人員按照發(fā)布服務的請求路徑,參數(shù),類型達成一致,形成契約,它可能是JSON或者是YAML格式的。在實際開發(fā)過程中,契約的形成是一個不斷完善的過程,肯定會經(jīng)過多次修改、補充,Swagger恰恰滿足了這樣一個不斷變化完善的需求,實現(xiàn)前后端的分離,在進行契約測試時盡早的發(fā)現(xiàn)差異,做出調整,將最后集成的風險降至最低。
Harbor的核心功能也采用RESTful API來實現(xiàn),在開發(fā)過程中采用Swagger編寫了一套可視化API規(guī)范,并作為項目的一部分提供給用戶使用。
Harbor項目采用兩種方式供用戶使用Swagger來展現(xiàn)或操控RESTful API。
一種是“靜態(tài)方式”,僅用Swagger來作為Harbor RESTful API 的展現(xiàn)和查閱工具。用戶只需從Harbor項目docs/目錄下找到swagger.yaml文件,用編輯器打開,全選、復制,粘貼到Swagger在線編輯器的左側代碼區(qū),右側就會呈現(xiàn)出可視化的Harbor RESTful API文檔頁面,便于查閱和參考。

另一種是“動態(tài)方式”,將Swagger UI與Harbor REST服務部署在同一個Server中,用戶可以使用Swagger來操控并測試Harbor的RESTful API。此方法可能會修改數(shù)據(jù)庫中的數(shù)據(jù),因此不建議在生產(chǎn)系統(tǒng)中使用。部署方案如下圖所示:

在Harbor項目源代碼的docs/目錄下,有個prepare-swagger.sh的腳本文件,可以幫助用戶實現(xiàn)“動態(tài)方式”部署。下文對相關步驟做簡要的說明,詳細信息請參閱文檔docs/configure_swagger.md:
(1)修改腳本文件中的SERVER_IP值,設置為當前部署Harbor系統(tǒng)的宿主機IP地址,保存修改后,執(zhí)行該腳本。腳本會依次幫用戶下載Swagger軟件,解壓至Harbor項目vendors靜態(tài)資源目錄;將docs/目錄下的swagger.yaml文件拷貝至Harbor項目resources/yaml靜態(tài)資源目錄;根據(jù)用戶提供的SERVER_IP替換修改URL內容。
(2)切換到Deploy目錄,修改docker-compose.yml這個文件,將新添加的Swagger靜態(tài)資源目錄通過volumes方式掛載到HarborUI的Dockercontainer中,使得SwaggerUI可以隨著HarborUI啟動后一同發(fā)布給外部進行訪問。
(3)用docker-compose命令重新構建Harbor項目,清理之前遺留的容器內容,重新啟動新構建好的Harbor項目鏡像。
下圖是部署好的Swagger UI頁面截圖。


通過Swagger UI 來觸發(fā)Harbor RESTful API時還需要注意“登錄狀態(tài)”問題,因為部分API需要有session的信息。有兩種方法來配置。
方法一:先通過瀏覽器打開UI界面(注意:請務必保證Harbor UI的URL中的IP地址與之前部署Swagger UI是提供的SERVER_IP值是相同的),完成注冊(首次使用)、登錄;然后在同一瀏覽器中打開新的標簽(tab)頁面,輸入如下Swagger UI地址,這樣就能確保在用戶登錄的狀態(tài)下操控HarborRESTful API:
http://<server_IP>/static/vendors/swagger/index.html
方法二:Harbor RESTful API 本身實現(xiàn)了Basic Authentication 認證模式,但由于目前Swagger不支持從界面上輸入用戶名、密碼,造成訪問上不方便,感興趣的同學可以參考下面的鏈接(https://github.com/swagger-api/swagger-ui),嘗試修改Swagger實現(xiàn)Basic Authentication模式訪問。當然,用戶也可以用命令
curl -u <用戶名:密碼>
的方式來訪問API,這樣就可以不用事先登錄HarborUI來直接調試API了。
關于如何用Swagger調用Harbor Registry的REST API就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)站欄目:如何用Swagger調用HarborRegistry的RESTAPI
新聞來源:http://www.chinadenli.net/article18/gpcedp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、靜態(tài)網(wǎng)站、響應式網(wǎng)站、電子商務、定制開發(fā)、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)