我想在Rest API(spring-mvc)文档中使用Springfox SwaggerUI。我在@RequestMapping注释中使用版本头,但是如果我有相同方法的两个版本,在SwaggerUI中只能看到一个。
@GetMapping(value = "/users", headers = "X-API-VERSION=1")
public List<User> getUsersV1(){...}
@GetMapping(value = "/users", headers = "X-API-VERSION=2")
public List<User> getUsersV2(){...}
上面的代码导致api文档中只有一个可见的方法。
考虑到我的版本头,是否有任何选项可以将Swagger配置为不同的endpoint?
经过一些研究,我找到了解决问题的方法,也许将来会帮助到别人。我使用PathDecorator在路径中添加“#V”后缀。
现在我可以在生成的文档中看到我的所有方法。
@Component
@Order(value = Ordered.HIGHEST_PRECEDENCE + 70)
public class VersionPathDecorator implements PathDecorator {
private final static Logger logger = LoggerFactory.getLogger(VersionPathDecorator.class);
@Override
public Function<String, String> decorator(PathContext context) {
return (path) -> {
StringBuilder sb = new StringBuilder(path);
Field parent = null;
try {
parent = PathContext.class.getDeclaredField("parent");
parent.setAccessible(true);
RequestMappingContext rmc = (RequestMappingContext) parent.get(context);
rmc.headers()
.stream()
.filter(h -> RequestHeader.X_API_VERSION.headerName.equals(h.getName()))
.map(NameValueExpression::getValue)
.findFirst()
.ifPresent(v -> sb.append("#v").append(v));
} catch (NoSuchFieldException | IllegalAccessException e) {
logger.error("path decoration failed", e);
}
return sb.toString();
};
}
@Override
public boolean supports(DocumentationContext documentationContext) {
return true;
}
}
如何使用SpringBoot和SpringSecurity将基本授权(登录密码)与其他服务(google、github、facebook)的授权结合起来?有很多信息,我不知道如何正确解决这个问题。我将非常感谢教程或链接到材料。
SwaggerUI 汉化版;修改了部分样式;结合SpringFox SpringFox-Swagger-UI实现API管理
有没有办法可以从springfox swagger-UI中删除“basic-error-controller”? 图片:
我需要添加“列表类型”作为查询参数还是作为标题?如果作为查询参数,如何在URL中声明它。 我得到了以下响应,它不包含内容列表,只是关于bucket本身的信息: 任何帮助都将不胜感激。 谢谢你,艾哈迈德。
问题内容: 有谁知道HTA文件使用的JavaScript版本。 当前正在创建一些脚本文件-并尝试利用 当作为HTA运行时-指出对象不支持该属性或方法的错误。我已经将其作为HTM文件运行以进行检查-完全没有问题。 因此,我只能假设它使用的是旧版JavaScript引擎。有人可以确认吗? 问题答案: 使用的JavaScript(或JScript)版本取决于三件事:已安装的Interner Explor
以下的宏为configure脚本管理版本号。使用它们是可选的。 宏: AC_PREREQ version) 确保使用的是足够新的Autoconf版本。如果用于创建configure的Autoconf的版本比version 要早,就在标准错误输出打印一条错 误消息并不会创建configure。例如:AC—PREREQ(1.8) 如果你的'configure.in'依赖于在不同Autoconf版本中改