我正在使用带有简单rest控制器的springfox 3.0。在swagger ui中,只显示get方法,而不显示post方法。
我也在努力在swagger ui中获得上下文路径。实际上,上下文路径是在端点之后而不是之前追加的。所以我把所有东西都放在tomcat根文件夹中,没有上下文。
<servlet-mapping>
<servlet-name>SwaggerRest</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.host("localhost:8080")
.select()
.apis(RequestHandlerSelectors.basePackage("test.maventest")).paths(PathSelectors.ant("/**"))
.build();
-------------
@Component
// make sure it runs after the default plugin springfox.documentation.swagger2.web.WebMvcBasePathAndHostnameTransformationFilter
@Order(Ordered.HIGHEST_PRECEDENCE + 1000)
public class CustomMvcPathHostFilter implements WebMvcSwaggerTransformationFilter {
@Override
public Swagger transform(SwaggerTransformationContext<HttpServletRequest> context) {
Swagger swagger = context.getSpecification();
context.request().ifPresent(servletRequest -> {
UriComponents uriComponents = HostNameProvider.componentsFrom(servletRequest, swagger.getBasePath());
swagger.host(uriComponents.getHost() + (uriComponents.getPort() > 0 ? ":" + uriComponents.getPort() : ""));
// set Swagger base path
String basePath = StringUtils.isEmpty(uriComponents.getPath()) ? "/" : uriComponents.getPath();
swagger.basePath(basePath);
System.out.println("baseoath "+basePath);
// rewrite paths to remove the leading base path from each endpoint
final Map<String, Path> newPaths = swagger.getPaths().entrySet().stream().collect(Collectors.toMap(
entry -> entry.getKey().replaceAll("^" + basePath, ""), Map.Entry::getValue));
swagger.setPaths(newPaths);
});
return swagger;
}
//Not showing in swagger ui
@PostMapping("/saveInfo")
public ResponseEntity <?> saveinFo(@RequestBody Student student) throws Exception {
System.out.println("Saving studinfo Response at ==>444444444" );
return new ResponseEntity <List<Student>> (studservice.save(student),HttpStatus.OK);
}
暂无答案!
目前还没有任何答案,快来回答吧!