一、Swagger2介绍
前后端分离开发模式中,api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)
规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)
一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
可测性 (直接在接口文档上进行测试,以方便理解业务)

二、配置Swagger2
1、创建common模块
在guli-parent下创建模块common
配置:

groupId:com.atguigu

artifactId:common


2、在common中引入相关依赖

<!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><scope>provided </scope></dependency>

3、在common下面创建子模块service-base,然后在模块service-base中,创建swagger的配置类
创建包com.atguigu.servicebase.config,创建类SwaggerConfig

@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket webApiConfig(){return new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(webApiInfo()).select().paths(Predicates.not(PathSelectors.regex("/admin/.*"))).paths(Predicates.not(PathSelectors.regex("/error.*"))).build();}private ApiInfo webApiInfo(){return new ApiInfoBuilder().title("网站-课程中心API文档").description("本文档描述了课程中心微服务接口定义").version("1.0").contact(new Contact("guigu", "http://atguigu.com", "abc@qq.com")).build();}
}

4、在模块service模块中引入service-base

<dependency><groupId>com.atguigu</groupId><artifactId>service-base</artifactId><version>0.0.1-SNAPSHOT</version>
</dependency>

5、在service-edu启动类上添加注解,进行测试

6、API模型
可以添加一些自定义设置,例如:
定义样例数据

@ApiModelProperty(value = "创建时间", example = "2019-01-01 8:00:00")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;@ApiModelProperty(value = "更新时间", example = "2019-01-01 8:00:00")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;

7、定义接口说明和参数说明
定义在类上:@Api
定义在方法上:@ApiOperation
定义在参数上:@ApiParam

@Api(description="讲师管理")
@RestController
@RequestMapping("/admin/edu/teacher")
public class TeacherAdminController {@Autowiredprivate TeacherService teacherService;@ApiOperation(value = "所有讲师列表")@GetMappingpublic List<Teacher> list(){return teacherService.list(null);}@ApiOperation(value = "根据ID删除讲师")@DeleteMapping("{id}")public boolean removeById(@ApiParam(name = "id", value = "讲师ID", required = true)@PathVariable String id){return teacherService.removeById(id);}
}

项目配置Swagger2生成API接口文档相关推荐

  1. SpringBoot集成Swagger2生成API接口文档

    SpringBoot2.3.0集成Swagger2 引入Swagger2相应的依赖 入门示例 SpringBoot2集成Swagger2后启动报错 结语 背景:最近在工作中发现,已经多次发现后台开发人 ...

  2. python生成api文档_Django 自动生成api接口文档教程

    最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现. 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化 ...

  3. python api接口生成_Django 自动生成api接口文档教程

    最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现. 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化 ...

  4. Laravel使用Apidoc注解自动生成Api接口文档

    本教程从零开始搭建laravel项目,并安装Apidoc扩展及使用注解生成Api接口文档的教程,该扩展支持 多应用/版本.Markdown文档.在线接口调试.接口生成器.代码模板生成器.Mock调试数 ...

  5. 如何自动生成 API 接口文档 - 一份详细指南

    本篇文章详细教你如何使用 Apifox 的 IDEA 插件实现自动生成接口代码.好处简单总结有以下几点: 自动生成接口文档: 不用手写,一键点击就可以自动生成文档,当有更新时,点击一下就可以自动同步接 ...

  6. 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档

    今天感觉效率真的很低= =各个层面的,apk发布到现场发现出现了问题,所以一个下午都在忙着解决现场出现的问题,领导一直打电话询问进度,午觉也没有睡所以今天预计的很多计划都处于停滞状态,像昨天规划的今天 ...

  7. apidoc 自动化生成 api接口文档

    手写api接口太麻烦. 学习了apidoc自动生成接口文档,这边做一下整理 要用组件那就必须先安装 apidoc,做一下全局安装 npm install apidoc -g 新建配置文件apidoc. ...

  8. Laravel使用swagger PHP生成api接口文档

    Laravel使用swagger PHP生成api接口文档 Swagger集接口文档和测试于一体,就类比将postman和showdoc的结合体 首先要先安装基于laravel5的swagger包 地 ...

  9. Swagger2生成在线接口文档并导出pdf文件

    文章目录 一,配置 1,pom依赖 2,通用配置 二,注解 三,主题 1,默认主题效果 2,添加依赖 3,添加配置 4,启动看效果 四,token验证 方法1,所有接口上添加 方法2,全局统一添加 五 ...

最新文章

  1. Linux多线程编程----IO【select、poll、epoll】
  2. asp.net 开发疑问?
  3. Union all的用法实例sql
  4. 1号店11.11:从应用架构落地点谈高可用高并发高性能
  5. iPhone 13的新对手?小米历史上最好看的手机即将发布
  6. 4 大妙招,教你快速搞定复杂的系统编程!
  7. 楼板计算塑形弹性_阶梯教室板模板支架工程方案计算书(仅供参考)
  8. Atitit 翻页功能的解决方案与版本历史 v4 r49
  9. 新颖的自我介绍_有创意的自我介绍10篇
  10. 在Linux系统中安装JDK
  11. 郑州财经学院第54次全国计算机,郑州财经学院第二期教师博士班开班
  12. 6.5 特殊用途语言特性
  13. Project build error: Non-resolvable parent POM
  14. java153-字符输出流
  15. Oracle数据库之coalesce函数的用法
  16. Hbase(二)hbase建表
  17. 整理的selenium WebDriver提供的8种元素定位方法
  18. 引用和指针的区别都有什么_为什么要有指针和引用类型?
  19. java我的世界mod制作_我的世界:MOD的编写有多复杂,估计你也学不会
  20. 易语言学习笔记——入门篇

热门文章

  1. 鼠标悬浮显示下拉菜单,离开隐藏
  2. 互斥锁机制,互斥锁与读写锁区别
  3. imagenet 种子
  4. vjudge11.10
  5. Redis 牛X!竟然能实现抢红包功能!
  6. 活着是为了经历,经历就是修行
  7. 谷歌浏览器的使用方法
  8. 8.HttpEntity,ResponseEntity
  9. argparse学习
  10. 前端应该掌握setTimeout的秘密