在我的spring boot应用程序中,我有多个Rest控制器,需要分别为每个控制器生成swagger。
通过使用下面的Docket config在我的spring boot应用程序类中的每个控制器,我可以下载特定于控制器的swagger,方法是转到/v2/api-docs?group=ai,其中I=1到n
但是在swagger-ui.html中,当我选择a1(/v2/api-docs?group=a1)时,它显示的路径为“/api/a1/a1”,而选择a2(/v2/api-docs?greoup=a2)时,它显示的路径是正确的,即/api/a2
我尝试在Docket中更改,路径regex到绝对,例如“api/a1”等,但这没有帮助。
@Bean
public Docket a1Api() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("a1")
.apiInfo(a1Info())
.select().apis(RequestHandlerSelectors.any())
.paths(regex("/api/a1.*"))
.build()
.pathMapping("/");
}
@Bean
public Docket a2Api() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("a2")
.apiInfo(a1Info())
.select().apis(RequestHandlerSelectors.any())
.paths(regex("/api/a2.*"))
.build()
.pathMapping("/");
}
private ApiInfo a1Info() {
return new ApiInfoBuilder()
.title("a1 Swagger 2.0")
.description("a1")
.license("a1")
.version("1.0")
.build();
}
private ApiInfo a2Info() {
return new ApiInfoBuilder()
.title("a2 Swagger 2.0")
.description("a2")
.license("a2")
.version("1.0")
.build();
}
Rest控制器
@RestController
@Api(tags = "A1")
@RequestMapping("/api/a1")
public class a1Controller {
@ApiOperation(value = "a1")
@RequestMapping(value = "", method = RequestMethod.POST)
public a1Response invoke(@RequestBody a1Request va1Request) {
.....;
}
}
@RestController
@Api(tags = "An")
@RequestMapping("/api/an")
public class a1Controller {
@ApiOperation(value = "an")
@RequestMapping(value = "", method = RequestMethod.POST)
public anResponse invoke(@RequestBody anRequest vanRequest) {
.....;
}
}
知道如何解决这个问题吗?
我使用的是springfox swagger版本2.6.1
您可以使用以下Swagger配置添加多个控制器类:
1)创建一个Swagger配置类。
2)然后指定控制器的基本包。
import java.util.Collections;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig
{
private static final ApiInfo DEFAULT_API_INFO = null; //Swagger info
@Bean
public Docket api()
{
return new Docket(DocumentationType.SWAGGER_2)
.forCodeGeneration(Boolean.TRUE)
.select()
.apis(RequestHandlerSelectors.basePackage("com.user.controller"))
.paths(PathSelectors.any())
.paths(Predicates.not(PathSelectors.regex("/logout.*")))
.build()
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfo(
"REST API",
"REST description of API.",
"API TOS",
"Terms of service",
new Contact("Rajib Garai", "https://www.linkedin.com/in/rajibgarai90/", "90rajibgarai@gmail.com"),
"License of API", "API license URL", Collections.emptyList());
}
}
嗨,我用spring初始化器创建了一个简单的Spring Boot应用程序。我在主应用程序类的同一文件夹中添加了一个控制器。 这是给我以下错误的网址http://localhost:8080/welcome 此应用程序没有针对/错误的显式映射,因此您将其视为回退。 Sat Dec 19 12:51:44 IST 2020出现意外错误(类型=未找到,状态=404)。 如果我使用@restContro
不工作的控制器: 工作控制器:
我真的很难理解JavaFX控制器,我的目标是写一个TextArea来充当日志。 我的代码在下面,但我希望能够改变值等从另一个类,我可以调用时需要。我试图创建一个扩展初始化的控制器类,但我无法使它工作。有谁能指引我正确的方向吗?
我刚接触外汇。我有一个有10个标签的标签面板。每个选项卡都有许多控件(图表、按钮等),我想要的是为每个选项卡分配一个控制器。SceneBuilder只允许我为整个视图分配一个控制器,我的意思是,只有顶部面板(根)有“控制器类”选项,所以我必须为一个类中的所有选项卡编写代码,这导致了一个非常大的类,很难理解和维护。也许解决方案很简单,但正如我所说,我对FX的经验很少,我也无法在网上找到类似的东西。
我有这个控制器,我想归还每个人的家具。这种“孩子气”的方法不起作用。这两个“一对多”的关系是正确的。并不强制使用children方法。任何解决问题的资源都是可访问的。 重要提示:Laravel 5.8版 personController.php