W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在靜態(tài)部署預(yù)覽Swagger JSON章節(jié)中我們已經(jīng)講過如何通過nginx來部署靜態(tài)文件預(yù)覽文檔,但此時我們會發(fā)現(xiàn)存在一個問題,即無法進(jìn)行接口的調(diào)試。
我們借助于nginx的反向代理功能,幫助我們實現(xiàn)接口的調(diào)試功能
假設(shè)還是提供靜態(tài)JSON的方式,我們只需要在nginx的配置節(jié)點中添加一層location即可
如下:
server {
listen 18001;
server_name 192.168.0.112;
#charset koi8-r;
location / {
root /mnt/application/swagger-static;
}
location /api/ {
// Swagger JSON文件中所有以api開頭的接口全部走8999的代理
proxy_pass http://127.0.0.1:8999/api/;
client_max_body_size 200m;
}
}
通過以上配置,我們即可預(yù)覽及調(diào)試我們的接口文檔
但是
我們又會發(fā)現(xiàn)問題,很多時候,我們所寫的接口可能并不規(guī)范,并非所有的接口都是以/api開頭的,或者以固定的其他格式開頭的接口,那此時如果我們以上面的配置方式來配置,當(dāng)我們的接口以/admin/test
這種形式出現(xiàn)時,我們就無法調(diào)試該接口
那或許我們可以換一種方式,我們將該服務(wù)下的所有接口理解為一個服務(wù),我們給一個服務(wù)取一個特點的名稱,然后通過聚合服務(wù)的方式,將文檔聚合顯示出來,這樣既可進(jìn)行調(diào)試
例如:
將127.0.0.1:8999
理解為service1
我們在訪問該服務(wù)的接口時加上服務(wù)前綴:/service1/api/xxx
,此時,不管我們的接口又多么不規(guī)范,只要是service1下的接口,nginx都會將它轉(zhuǎn)發(fā)到127.0.0.1:8999
這臺服務(wù)上,這樣我們也完成了接口的調(diào)試
nginx配置:
server {
listen 18001;
server_name 192.168.0.112;
#charset koi8-r;
location / {
root /mnt/application/swagger-static;
}
location /service1 {
proxy_pass http://127.0.0.1:8999/;
}
location /service2 {
proxy_pass http://127.0.0.1:8998/;
}
}
很顯然,通過以上配置,最終能達(dá)到我們的預(yù)期,但是在我們的文檔界面中,沒有service1
這樣的basePath屬性供我們配置,此時,我們應(yīng)該如何處理
針對這種情況,swagger-bootstrap-ui
在分組屬性中,擴展了一個basePath
屬性值
此時,我們的group.json
文件如下:
[
{
"name": "微服務(wù)-用戶模塊",
"url": "/service1/v2/api-docs?group=分組接口",
"swaggerVersion": "2.0",
"location": "/service1/v2/api-docs?group=分組接口",
"basePath":"/service1"
},
{
"name": "微服務(wù)-訂單模塊",
"url": "/service2/v2/api-docs?group=默認(rèn)接口",
"swaggerVersion": "2.0",
"location": "/service2/v2/api-docs?group=默認(rèn)接口",
"basePath":"/service2"
}
]
此時,我們的Swagger的JSON路徑地址,我們也可以使用我們服務(wù)提供給我們的接口地址,只需要加上為服務(wù)名稱,分組名稱即可得到該服務(wù)的Swagger JSON文件
通過這種方式,我們可以在group.json
文件中聚合所有后端的Swagger服務(wù)接口,最終一致輸出顯示
效果如下:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: