亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

swagger配置正式環(huán)境中不可訪問(wèn)的問(wèn)題

 更新時(shí)間:2022年06月14日 09:17:27   作者:大-哥  
這篇文章主要介紹了swagger配置正式環(huán)境中不可訪問(wèn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

swagger配置正式環(huán)境中不可訪問(wèn)

Swagger是我們常用的API Doc工具,非常便于開(kāi)發(fā)人員調(diào)試,后臺(tái)和前端開(kāi)發(fā)人員協(xié)作,以及對(duì)外公布API使用。

如何在生產(chǎn)環(huán)境中禁止swagger了?

@Profile("beta")  // 只允許在測(cè)試服務(wù)器訪問(wèn)Swagger

package com.demo.swagger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
 * @author HHM
 */
@Configuration
@EnableSwagger2
@Profile("beta")
public class SwaggerConfig {
    @Bean
    public Docket buildDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInf())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo buildApiInf() {
        return new ApiInfoBuilder()
                .title("管理系統(tǒng)接口文檔")
                .description("后臺(tái)管理 API 接口文檔")
                .version(DocumentationType.SWAGGER_2.getVersion())
                .build();
    }
}

以下是正式環(huán)境訪問(wèn)

swagger無(wú)法打開(kāi)的說(shuō)明

最近項(xiàng)目集成swagger2,結(jié)果本地swagger-ui.html可以打開(kāi),但是線上環(huán)境卻無(wú)法打開(kāi)。倒騰了一番終于解決問(wèn)題

總結(jié)了以下幾個(gè)解決方案

1.@EnableWebMvc注解必須去掉!

2.請(qǐng)實(shí)現(xiàn)WebMvcConfigurer,并添加如下代碼

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
? registry.addResourceHandler("swagger-ui.html")
? ? ? .addResourceLocations("classpath:/META-INF/resources/swagger-ui.html");
? registry.addResourceHandler("/webjars/**")
? ? ? .addResourceLocations("classpath:/META-INF/resources/webjars/");
}

3.檢查配置文件application.properties

將如下配置去掉,或者改成true:

spring.resources.add-mappings=false

將如下配置去掉:

spring.resources.static-locations: classpath:/webapp/

4.查看nginx配置(當(dāng)前項(xiàng)目踩坑點(diǎn))

檢查前端代碼,發(fā)現(xiàn)nginx配置有如下一段:

location /api/swagger-ui.html{
? ? ? ? proxy_pass http://server-service:8080/;
? ? ? ? proxy_set_header X-Real-IP $remote_addr;
? ? ? ? client_max_body_size ? ?1000m;
}

由于當(dāng)前應(yīng)用部署在k8s環(huán)境中,后端的api地址恰好為http://server-service:8080/,所以這個(gè)配置會(huì)導(dǎo)致請(qǐng)求直接轉(zhuǎn)發(fā)到后端接口,導(dǎo)致無(wú)法訪問(wèn)頁(yè)面。

事實(shí)上,針對(duì)swagger,前端nginx不需要做任何映射,直接請(qǐng)求 http:// {后端公網(wǎng)host}/swagger-ui.html 即可訪問(wèn)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

最新評(píng)論