java - 如何在 swaggaer4spring-web 中设置发送按钮的操作 url?

标签 java spring-mvc swagger swagger-ui

我正在使用swagger4spring-web 。 我很好地应用了我的应用程序。效果很好。但是如果我将此 Web 应用程序加载到其他服务器,则会出现 CORS 问题。

从我的应用程序加载 api,效果很好。 如果我按下测试按钮“尝试一下”,它就会失败,因为它默认设置“localhost”。

我想设置“尝试一下”按钮的操作网址。

我该如何解决这个问题?我想把这个url改成真实的ip地址。

最佳答案

为了使用 Spring RESTful 应用程序修复 CORS 问题,请查看 this tutorial 。简而言之,创建以下类并在您的应用程序中使用它:

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;

@Component
public class SimpleCORSFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
        chain.doFilter(req, res);
    }
    public void init(FilterConfig filterConfig) {}
    public void destroy() {}
}

关于 swagger4spring-web :如果你看 this example code ,这个类继承自 ApiDocumentationController最后一个提供了一个名为 setBasePath() 的方法,用它来设置 swagger-api 的 basePath:

@Controller
@RequestMapping(value = "/documentation")
public class ExampleDocumentationController extends ApiDocumentationController {
    public ExampleDocumentationController() {
        ...
        setBasePath("http://www.youraddress.com");
        ...
    }
}

您还可以设置本地IP地址(固定值或动态值)。

关于java - 如何在 swaggaer4spring-web 中设置发送按钮的操作 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31201344/

相关文章:

jsp - Spring MVC - 出现验证错误时如何设置父 div 的类?

amazon-web-services - 将 lambda 函数名称传递给 swagger 文件中的 uri

spring-boot - Swagger-UI 在根端点上不显示 SpringBoot 和路径参数

netbeans 上的 Java 图像路径

java - 自定义类变量被某些未知进程覆盖

spring - JSF - 来自 Spring bean 和数据库的资源包

java - 无法将类型 'java.lang.String' 的属性值转换为所需类型 'java.util.Date'

python - 如何使用 swagger 和 Flask Restplus 正确渲染数组参数?

Java POJO 属性映射

java - 使用 Java/Selenium - 正在运行多少个动画