GitHub:https://github.com/springfox/springfox

    文档

    在说swagger-bootstrap-ui的代码之前,先看Springfox-Swagger提供的2个接口,swagger-bootstrap-ui包也是根据这2个接口来动态生成文档的

    详情实例接口:/v2/api-docs

    Swagger分组

    Swagger的分组接口是用过后端配置不同的扫描包,将后端的接口,按配置的扫描包基础属性响应给前端,看看分组接口响应的json内容:

    在Springfox-Swagger有些较低的版本中,并没有location属性,高版本会有该属性

    1. @Bean(value = "defaultApi")
    2. public Docket defaultApi() {
    3. ParameterBuilder parameterBuilder=new ParameterBuilder();
    4. List<Parameter> parameters= Lists.newArrayList();
    5. parameterBuilder.name("token").description("token令牌").modelRef(new ModelRef("String"))
    6. .parameterType("header").defaultValue("abc")
    7. .required(true).build();
    8. parameters.add(parameterBuilder.build());
    9. return new Docket(DocumentationType.SWAGGER_2)
    10. .apiInfo(apiInfo())
    11. .groupName("默认接口")
    12. .select()
    13. .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.controller"))
    14. .paths(PathSelectors.any())
    15. .build().globalOperationParameters(parameters)
    16. .securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
    17. }
    18. public Docket groupRestApi() {
    19. return new Docket(DocumentationType.SWAGGER_2)
    20. .apiInfo(groupApiInfo())
    21. .groupName("分组接口")
    22. .select()
    23. .apis(RequestHandlerSelectors.basePackage("com.swagger.bootstrap.ui.demo.group"))
    24. .paths(PathSelectors.any())
    25. .build().securityContexts(Lists.newArrayList(securityContext(),securityContext1())).securitySchemes(Lists.<SecurityScheme>newArrayList(apiKey(),apiKey1()));
    26. }

    以上详细配置可参考码云在线SwaggerConfiguration.java

    此处groupName即分组名称,basePackage即我们写的接口基础package包路径.

    详情实例接口

    详情实例接口是根据分组名称,动态获取该组下配置的basePackage所有的接口描述信息

    属性 说明
    info 定义的该分组一些基础信息,包括标题、简介、联系人等
    tags 该属性是分组属性,与后端的@Api注解对应
    paths 接口示例数组,每个实例包含了接口的入参、出参、响应码等基础信息
    securityDefinitions 权限配置验证,一般JWT等配置的权限配置会在该节点属性出现
    definitions 该属性定义了所有响应的类属性说明