如何在 swaggaer4spring-web 中设置发送按钮的动作 url?
how can I set the action url of the send button in swaggaer4spring-web?
我正在使用 swagger4spring-web。
我很好地应用了我的应用程序。它运作良好。但是,如果我将此 Web 应用程序加载到其他服务器,则会出现 CORS 问题。
从我的应用程序加载 API,效果很好。
如果我按下测试按钮 "try it out",它会失败,因为它默认设置 "localhost"。
我想设置按钮"try it out"的动作url。
我该如何解决?我想把这个url改成真实的ip地址。
为了解决 Spring RESTful 应用程序的 CORS 问题,请查看 this tutorial。换句话说,创建以下 class 并在您的应用程序中使用它:
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, this class inherits from ApiDocumentationController 并且最后一个提供了一个名为 setBasePath() 的方法,请使用它来设置您的 swagger-api:
@Controller
@RequestMapping(value = "/documentation")
public class ExampleDocumentationController extends ApiDocumentationController {
public ExampleDocumentationController() {
...
setBasePath("http://www.youraddress.com");
...
}
}
您也可以设置本地IP地址(固定值或动态值)。
我正在使用 swagger4spring-web。 我很好地应用了我的应用程序。它运作良好。但是,如果我将此 Web 应用程序加载到其他服务器,则会出现 CORS 问题。
从我的应用程序加载 API,效果很好。 如果我按下测试按钮 "try it out",它会失败,因为它默认设置 "localhost"。
我想设置按钮"try it out"的动作url。
我该如何解决?我想把这个url改成真实的ip地址。
为了解决 Spring RESTful 应用程序的 CORS 问题,请查看 this tutorial。换句话说,创建以下 class 并在您的应用程序中使用它:
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, this class inherits from ApiDocumentationController 并且最后一个提供了一个名为 setBasePath() 的方法,请使用它来设置您的 swagger-api:
@Controller
@RequestMapping(value = "/documentation")
public class ExampleDocumentationController extends ApiDocumentationController {
public ExampleDocumentationController() {
...
setBasePath("http://www.youraddress.com");
...
}
}
您也可以设置本地IP地址(固定值或动态值)。