我们已经创建了如下的请求映射:
@RequestMapping(path = "/{project}/{resource}/{language}", method = RequestMethod.GET)
public ResponseEntity<Resource> get(
@PathVariable String project,
@PathVariable String resource,
@PathVariable String language) throws IOException {
我们可以更改路径并添加前缀,以避免出现问题,但这已被确定为不需要。
path = "/generateReport/{project}/{resource}/{language}"
不幸的是,当前的映射正在使用swagger-ui.html产生问题。
当我们从http://localhost:8023/swagger-ui.html进行调用时,该页面为空白,因为劫持了所有遵循a/b/c
格式的请求。
示例:
<link rel="stylesheet" type="text/css" href="webjars/springfox-swagger-ui/springfox.css?v=2.8.0-SNAPSHOT" >
<link rel="stylesheet" type="text/css" href="webjars/springfox-swagger-ui/swagger-ui.css?v=2.8.0-SNAPSHOT" >
<link rel="icon" type="image/png" href="webjars/springfox-swagger-ui/favicon-32x32.png?v=2.8.0-SNAPSHOT" sizes="32x32" />
<link rel="icon" type="image/png" href="webjars/springfox-swagger-ui/favicon-16x16.png?v=2.8.0-SNAPSHOT" sizes="16x16" />
和
<script src="webjars/springfox-swagger-ui/swagger-ui-bundle.js?v=2.8.0-SNAPSHOT"> </script>
<script src="webjars/springfox-swagger-ui/swagger-ui-standalone-preset.js?v=2.8.0-SNAPSHOT"> </script>
<script src="webjars/springfox-swagger-ui/springfox.js?v=2.8.0-SNAPSHOT"> </script>
那么我该如何处理?是否有一种方法可以指定以webjars
开头的请求应重定向到其他地方?
我尝试使用consumes
关键字,并且这种方法对客户端有效(尽管我不喜欢使用像这样的内容类型)。
consumes = MediaType.APPLICATION_JSON_VALUE
。
不幸的是,当我尝试访问swagger-ui.html时,我得到了以下信息:
DefaultHandlerExceptionResolver Resolved exception caused by Handler execution: org.springframework.web.HttpMediaTypeNotSupportedException: Content type '' not supported
正在为swagger-ui.html生成HTML,但是无法加载其所需的所有资源。
有什么想法吗?
我找到了使用路径变量和正则表达式的解决方法:
@RequestMapping(path = "/{project:^(?!webjars).+}/{resource}/{language}", method = RequestMethod.GET)
public ResponseEntity<Resource> get(
@PathVariable String project,
@PathVariable String resource,
@PathVariable String language) throws IOException {
但是,由于我不喜欢这100%,新的答案仍然值得赞赏
答案 0 :(得分:0)
我找到了使用路径变量和正则表达式的解决方法:
@RequestMapping(path = "/{project:^(?!webjars).+}/{resource}/{language}", method = RequestMethod.GET)
public ResponseEntity<Resource> get(
@PathVariable String project,
@PathVariable String resource,
@PathVariable String language) throws IOException {
但是,新的答案仍然值得赞赏!