问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

swagger ui 怎么跳页面

发布网友 发布时间:2022-04-29 00:48

我来回答

2个回答

好二三四 时间:2022-06-13 07:30

<link rel="stylesheet" href="https://js.how234.com/jslib/syntaxhighlighter/styles/shCore.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/jslib/syntaxhighlighter/styles/shThemeDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><style>pre{overflow-x: auto}</style>

Swagger UI 简介

Swagger UI允许任何人都可以可视化API资源并与之交互,而无需任何实现逻辑。它是根据OpenAPI(以前称为Swagger)规范自动生成的,具有可视化文档,可简化后端实现和客户端使用。

SwaggerUI 特点

1、无依赖,UI可以在任何开发环境中使用,无论是本地还是在Web端中。

2、人性化,允许最终开发人员轻松地进行交互,并尝试API公开的每个操作,以方便使用。

3、易于浏览,归类整齐的文档可快速查找并使用资源和端点。

4、所有浏览器支持,Swagger UI 在所有主要浏览器中均可使用,以适应各种可能的情况。

5、完全可定制,通过完整的源代码访问方式以所需方式设置和调整Swagger UI。

6、完整的OAS支持,可视化Swagger 2.0或OAS 3.0中定义的API。

关于swagger-ui的使用过程是怎么样的?

导入jar包

<!--swagger-ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

编写SwaggerConfig配置文件

/**
 */
@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //为当前包路径,控制器类包
                .apis(RequestHandlerSelectors.basePackage("com.stu.stusystem.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    //构建 api文档的详细信息函数
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //页面标题
                .title("管理系统API接口文档")
                //创建人
                .contact(new Contact("cxt", "http://localhost", "10******34@qq.com"))
                //版本号
                .version("1.0")
                //描述
                .description("系统API描述")
                .build();
    }
}

2)指定静态文件地址

在swagger文件生成后需要指定下文件存放的地方。

/**
 * 设置静态文件地址
 */
@Component
public class WebConfigImpl implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
}

3)放开swagger页面相关请求资源

比如shiro中需要设置这几项

       filterChainDefinitionMap.put("/v2/api-docs/**", "anon");
        filterChainDefinitionMap.put("/swagger-ui.html", "anon");
        filterChainDefinitionMap.put("/swagger-resources/**", "anon");
        filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon");

4)关于API文档注解

放在Controller方法上面注解

// tags 表示分组,页面中的接口进行分组
@ApiOperation(value="接口名称" ,notes="接口说明", tags="接口属于哪个分组", httpMethod="接口请求方式")
// 参数说明
@ApiImplicitParams({
    @ApiImplicitParam(name="参数一", value="对参数的说明", required=true [是否必须], dataType="String")
    ……
})
// 请求成功响应格式
@ApiRespones({
    @ApiResponse(code=200, message="请求成功", response=AjaxResponse.class)    
})

放在Bean上面

@ApiModel(value = "这个Bean的说明")
@ApiModelProperty(value = "这个属性的说明", example="1,2,3") // example 中的值表示这个属性都可以返回那些值

5) swagger导出离线文档

Swagger文档 -> Asciidoc文档-> Html/pdf 文档
-> Markdown文档

1)导入需要的jar包

<!-- swagger 导出需要的jar-->
        <dependency>
            <groupId>io.github.swagger2markup</groupId>
            <artifactId>swagger2markup</artifactId>
            <version>1.3.1</version>
        </dependency>

2)编写测试类

需要在pom文件中添加Test测试类的jar支持

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
@ExtendWith(SpringExtension.class)//@RunWith(SpringRunner.class)   // Junit4 开发者使用这个注解@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)public class ImportSwagger {
    @Test
    public void generateAsciiDocs() throws Exception {
        Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
                .withMarkupLanguage(MarkupLanguage.MARKDOWN) // 设置生成格式Markdown                .withOutputLanguage(Language.ZH) // 设置语言中文                .withPathsGroupedBy(GroupBy.TAGS)
                .withGeneratedExamples()
                .withoutInlineSchema()
                .build();
        Swagger2MarkupConverter.from(new URL("http://127.0.0.1:2020/v2/api-docs")) // 复制到浏览器中可以看到JSION数据的地址                .withConfig(config)
                .build()
                .toFile(Paths.get("src/main/resources/docs"));  // 这里注意,src前面不能有 “/”    }}

结果:导出成功的Markdown文档

以上就是小编今天的分享了,希望可以帮助到大家。

热心网友 时间:2022-06-13 04:38

Swagger-Ui是一个非常棒的Web API说明帮助页,具体详情...你就可以看到Swagger页面了。 还是非常简单易用的。...自己编译一下,修改修改就可以了,结果这个坑我就跳天津众 维原画设计
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
前几天在楼下吃饭,店家推荐使用淘气购支付,听说可以用豆豆换东西。会... 绵阳淘气购科技有限公司怎么样? 四川省淘气购商贸有限公司怎么样? 盐酸洛美沙星分散片的作用 盐酸洛美沙星颗粒的剂量如何根据不同感染情况调整? 盐酸洛美沙星颗粒的化学名是什么? 盐酸洛美沙星胶囊功效 洛美沙星盐酸洛美沙星 洛美沙星的功效与作用 盐酸洛美沙星颗粒能治疗哪些类型的感染? swagger controller 接收Map参数 怎么表示字段 如何实现像overleaf,swagger editor那样左边编辑,右边显示结果的网页呢? 车位出租了车位管理费谁出 想问问 车位出租的物管费应该是出租人承担还是承租人啊? 谢谢大家 想把车位出租出去,有什么好的软件吗 车位出租一般先交几个月的定金? 车位如何出租 小区停车位要10万,租车位每个月200多,哪个更划算? 【急急】淘宝店铺分类图片是动态图片怎么保存,应该保存在哪儿呢? 小区车位出租多少钱一年 我想在自己小区出租车位,哪里可以免费发布信息?? 我有一个车位 怎样才能租出去, 谁要租昆明市天怡峰景的车位负一负二层的都有 昆明租车位在哪个平台好租一些 网易UU网游加速器在线客服怎么用 在线客服服务须知 网易UU网游加速器快捷方式变成白色小方块了怎么恢复 我用网易uu加速器玩吃鸡,最近总是这样,那个打鸡怪我的也玩不了,也会这样,怎么解决? 网易UU加速器有什么方式可以联系客服的吗? 网易UU加速器用的时候如果有出现问题应该如何处理啊? uu加速器兑换的物品如何使用 陈柏铨的《几乎成名》专辑里的歌词,每首十分,满意再加, spring boot和swagger中怎么隐藏请求参数 摇晃用英语怎么说 我的gta5无法进入游戏,提示无法进入离线模式,怎么解决。 紫金鼠漏眼是什么意思 紫金鼠光珠漏眼是什么意思 紫金鼠眼睛漏了怎么堵 紫金鼠手链可以把上面的眼通开吗 紫金鼠盘玩如何防止漏眼 帮忙给看下这串紫金鼠品相如何? 紫金鼠玉化料是什么意思 紫金鼠京八棱什么意思 朋友送了串紫金鼠,我不太懂这个,有没有盘玩价值,请专业指点一下 紫金鼠手串的寓意是什么? 入手一串紫金鼠15mm光珠手串,请懂行的朋友帮忙看看手串品相怎么样? 紫金鼠反油是什么意思 家境贫寒,老公沉迷炒股,走火入魔,负债累累,我该离婚吗? breedersofthenephelym怎么抓怪 老公三年不上班,只在家炒股、玩游戏,这种婚姻还有必要维持下去么? breeders of the nephetym怎么弄裙子