Spring boot 如何改变<;主机:端口>;昂首阔步
在图片中,swagger请求使用主机和端口,因此无法加载浏览器控制台Spring boot 如何改变<;主机:端口>;昂首阔步,spring-boot,swagger,swagger-ui,swagger-2.0,Spring Boot,Swagger,Swagger Ui,Swagger 2.0,在图片中,swagger请求使用主机和端口,因此无法加载浏览器控制台XMLHttpRequesthttp://115.159.22.159:9001/bp/api/v1/user/1. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://twogoods.cc因此,不允许访问。 如何解决 @Bean public Docket categoryApi() { return new Docket(DocumentationType.SWAG
XMLHttpRequesthttp://115.159.22.159:9001/bp/api/v1/user/1. 请求的资源上不存在“Access Control Allow Origin”标头。起源'http://twogoods.cc因此,不允许访问。
如何解决
@Bean
public Docket categoryApi() {
return new Docket(DocumentationType.SWAGGER_2)
.host("twogoods.cc")
.groupName("bookplatform-api")
.apiInfo(apiInfo())
.select()
.paths(apiPaths())
.build()
.directModelSubstitute(java.sql.Timestamp.class, java.sql.Date.class)
.enableUrlTemplating(false);
}
host()
method 您可以使用和方法覆盖默认值
例如
@Bean
公共摘要定制实现(){
返回新摘要(DocumentationType.SWAGGER_2)
.protocols(Collections.singleton(“https”))
.host(“twogoods.cc”)
.选择()
.build();
}
现在我知道host()方法可以更改“试用”URL,但我还有一个问题:如何自动获取主机(如HttpServletRequest.getServerName())不是手动输入?我也不期待从配置中找到一个特定的主机。你知道它是否可以动态完成吗,比如根据实际的域名选择主机名,这样在部署到不同的环境时就不需要做任何更改?@Joey 587-不确定,但你可能有三个选择(为了可行性,*未测试):a)使用环境变量从外部配置域名(启动时)。b)惰性初始化Docket
bean,并使用收到的第一个头来配置bean c)获取外部IP地址并进行反向查找(这里是dragons)