zoukankan      html  css  js  c++  java
  • 使用swagger生成API说明文档

    使用swagger生成API说明文档
    本文由个人总结,如需转载使用请标明原著及原文地址
    没有导出!!!!!不要整天给我留言导出呢,那个是你们百度的时候下面的推荐文章带的关键字,要做导出从swagger取数据,用Thymeleaf这类模板引擎生成word文档
    SwaggerDemo,jar包使用maven进行管理,还没了解maven的小伙伴可能有无法使用的情况

    在做前后端分离的项目时,后端人员总是要写接口文档给其他使用者,大家都知道,写接口文档是一件吃力不讨好的事,而swagger就是为了解决这个问题而存在的,不仅能提供接口文档,还能提供简单的传参测试

    要使用swagger,首先你要有一个spring项目

    1.导包

    我这使用maven统一管理jar包,在pom.xml中加入上面两个dependency,maven就能自动下载对应jar包,不了解maven的小伙伴自行在百度上找jar包,然后手动导入项目

    springfox-swagger2-vesion.jar

    springfox-swagger-ui-vesion.jar

    2.写一个swagger配置类

    创建的SwaggerConfig要继承WebMvcConfigurationSupport

    @EnableSwagger2 swagger2启动注解
    @ComponentScan(basePackages = {"cn.ycyy.controller"}) 指定需要生成API文档的类所在的包路径
    @Configuration 声明这是一个配置类
    createRestApi方法不需要更改,主要用于swagger的初始化设置,包括扫描API注解路径等,用我提供的createRestApi默认扫描当前项目全部路径,这里的扫描与上面的@ComponentScan不同,这里扫描的不会显示在swagger-ui(swaggerAPI文档可视化界面,最后会说)上

    apiInfo里的参数设置对应效果如下图所示

    SwaggerConfig文件必须放在spring注解扫描器能扫描到的位置,例如说我的项目都放在cn.ycyy项目下,我指定扫描路径cn.ycyy那么spring就能把整个项目的注解都扫描到

    然后将项目启动发布到tomcat上,就能访问swaggerAPI了

    访问的URL也是个固定的格式

    http://ip地址:端口/项目名/swagger-ui.html#/

     

    3.配置api生成
    在先前说了,这里只会显示@ComponentScan(basePackages = {"cn.ycyy.controller"}),这个路径下的类生成的API

    我的测试案例中只写了一个UserController所以这里只显示,UserController及里面的方法

    UserController代码如下

     

    在类上加上@Api注解

    以下参数可不指定

    在方法上加上@ApiOperation注解

    以下参数可不指定

    如果方法需要前端传递参数,可使用@ApiParam注解

     

     如果方法用对象入参的话,在实体类中对属性加@ApiModelProperty注解

     例如我有个方法的参数用User,那么我User类如下配置

     

     效果如下所示

     API文档中会将User自动分解成User的属性

    4.注解全参数

    以下是swagger2注解中的全参数,有兴趣可以都试试

    @Api 
    Api 标记可以标记一个Controller类做为swagger 文档资源,使用方式

     @ApiOperation每一个url资源的定义,使用方式

     @ApiParam标记
    public ResponseEntity createUser(@RequestBody @ApiParam(value = “user”, required = true) User user)

     

     @ApiImplicitParam对容器的描述

    @ApiResponse

  • 相关阅读:
    AcWing 第 12 场周赛
    AtCoder Beginner Contest 170 (D~F题,D筛法,E multiset使用,F Dijkstra算法改进)
    Codeforces Round #650 (Div. 3) F1经典离散化DP
    Codeforces Round #738 (Div. 2) (A~E)
    AtCoder Beginner Contest 214 (D并查集,E反悔贪心,F公共子序列DP)
    c++ 跨平台线程同步对象那些事儿——基于 ace
    博客园排名预测
    关于netty
    全局获取HttpContext
    【设计模式】设计模式学习笔记之(一)——类图、对象之间的关系及设计模式概要
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/11762860.html
Copyright © 2011-2022 走看看