swagger,中文“拽”的意思。它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试。另外swagger很容易构建restful风格的api,简单优雅帅气,正如它的名字。完整项目的源码来源 技术支持一七九一七四三三八零

一、引入依赖

 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version></dependency>
复制代码

二、写配置类

@Configuration
@EnableSwagger2
public class Swagger2 {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.forezp.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("springboot利用swagger构建api文档").description("简单优雅的restfun风格,http://blog.csdn.net/forezp").termsOfServiceUrl("http://blog.csdn.net/forezp").version("1.0").build();}
}
复制代码

通过@Configuration注解,表明它是一个配置类,@EnableSwagger2开启swagger2。apiINfo()配置一些基本的信息。apis()指定扫描的包会生成文档。

三、写生产文档的注解

swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。

@Api:修饰整个类,描述Controller的作用

@ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数描述

@ApiModel:用对象来接收参数

@ApiProperty:用对象接收参数时,描述对象的一个字段

@ApiResponse:HTTP响应其中1个描述

@ApiResponses:HTTP响应整体描述

@ApiIgnore:使用该注解忽略这个API

@ApiError :发生错误返回的信息

@ApiParamImplicitL:一个请求参数

@ApiParamsImplicit 多个请求参数

现在通过一个例子来说明:

package com.forezp.controller;import com.forezp.entity.Book;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;import java.util.*;/*** 用户创建某本图书 POST    /books/* 用户修改对某本图书    PUT /books/:id/* 用户删除对某本图书    DELETE  /books/:id/* 用户获取所有的图书 GET /books*  用户获取某一图书  GET /Books/:id* Created by fangzhipeng on 2017/4/17.* 官方文档:http://swagger.io/docs/specification/api-host-and-base-path/*/
@RestController
@RequestMapping(value = "/books")
public class BookContrller {Map<Long, Book> books = Collections.synchronizedMap(new HashMap<Long, Book>());@ApiOperation(value="获取图书列表", notes="获取图书列表")@RequestMapping(value={""}, method= RequestMethod.GET)public List<Book> getBook() {List<Book> book = new ArrayList<>(books.values());return book;}@ApiOperation(value="创建图书", notes="创建图书")@ApiImplicitParam(name = "book", value = "图书详细实体", required = true, dataType = "Book")@RequestMapping(value="", method=RequestMethod.POST)public String postBook(@RequestBody Book book) {books.put(book.getId(), book);return "success";}@ApiOperation(value="获图书细信息", notes="根据url的id来获取详细信息")@ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "Long",paramType = "path")@RequestMapping(value="/{id}", method=RequestMethod.GET)public Book getBook(@PathVariable Long id) {return books.get(id);}@ApiOperation(value="更新信息", notes="根据url的id来指定更新图书信息")@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "图书ID", required = true, dataType = "Long",paramType = "path"),@ApiImplicitParam(name = "book", value = "图书实体book", required = true, dataType = "Book")})@RequestMapping(value="/{id}", method= RequestMethod.PUT)public String putUser(@PathVariable Long id, @RequestBody Book book) {Book book1 = books.get(id);book1.setName(book.getName());book1.setPrice(book.getPrice());books.put(id, book1);return "success";}@ApiOperation(value="删除图书", notes="根据url的id来指定删除图书")@ApiImplicitParam(name = "id", value = "图书ID", required = true, dataType = "Long",paramType = "path")@RequestMapping(value="/{id}", method=RequestMethod.DELETE)public String deleteUser(@PathVariable Long id) {books.remove(id);return "success";}@ApiIgnore//使用该注解忽略这个API@RequestMapping(value = "/hi", method = RequestMethod.GET)public String  jsonTest() {return " hi you!";}
}
复制代码

通过相关注解,就可以让swagger2生成相应的文档。如果你不需要某接口生成文档,只需要在加@ApiIgnore注解即可。需要说明的是,如果请求参数在url上,@ApiImplicitParam 上加paramType = “path” 。

企业级SpringBoot教程(十一)springboot集成swagger2,构建Restful API相关推荐

  1. springboot集成swagger2构建RESTful API文档

    在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可 ...

  2. dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3(十)之Spring MVC中使用 Swagger2 构建Restful API...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/55047193 1.Swagger2是什么? ...

  3. Spring Boot 集成Swagger2生成RESTful API文档

    Swagger2可以在写代码的同时生成对应的RESTful API文档,方便开发人员参考,另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 使用Spring Boot可 ...

  4. Spring MVC中使用 Swagger2 构建Restful API

    0.Spring MVC配置文件中的配置 [java] view plain copy <!-- 设置使用注解的类所在的jar包,只加载controller类 --> <span s ...

  5. SpringBoot教程(十一) | SpringBoot集成Mybatis

    上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...

  6. 整合swagger2生成Restful Api接口文档

    整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...

  7. Spring Boot中使用Swagger2构建RESTful APIs

    关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. S ...

  8. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  9. asp编程工具_使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术文章<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

  10. 使用ASP.NET Core构建RESTful API的技术指南

    译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术文章<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...

最新文章

  1. 北斗导航 | C语言实现PPP(精密单点定位)
  2. 华为云电脑和马云无影比_阿里云打造未来电脑无影,却因为5G限制,很难达到普及...
  3. rem是如何实现自适应布局的?
  4. 大班线描机器人_大班美术教案机器人
  5. BCB 连接数据库和查询数据
  6. jq的each方法之退出循环与继续循环
  7. 用四级法测量计算机土壤电阻率,土壤电阻率的原理及测量土壤电阻率的测量方法...
  8. SharePoint Online 自定义Modern UI表单
  9. Laravel框架介绍与简介
  10. 谢晶:webpower中国区正在向“多渠道智能化营销”全面转型
  11. 智慧管廊可视化管理系统搭建
  12. 记实现多racecar仿真过程中遇到的问题(一)
  13. html页面字体缩小模糊怎么解决,ps字体模糊怎么变清晰 设置一下字体大小,是否一样...
  14. rt-thread通过spi连接W25Q32后无法读取ID
  15. jquery抓娃娃机代码
  16. 情侣纪念日网站html5源码教程
  17. Charles工具使用教程,以及注意事项。
  18. 中国物联网微控制器市场现状研究分析与发展前景预测报告(2022)
  19. 【C++入门】烦人的引用
  20. 格林纳达常驻WTO大使孙宇晨受邀出席美驻新大使的闭门午宴

热门文章

  1. linux文件删除恢复
  2. hdu 1025 Constructing Roads In JGShining's Kingdom
  3. Type class-Typeclass-泛型基础上的二次抽象
  4. HighChat动态绑定数据 数据后台绑定(三)
  5. 传统IDC为什么要上云计算平台篇之一
  6. 与小弟子交谈:引申的思考笔记[第一次编辑]
  7. 转]Linux杀死进程方法大全
  8. Android内存管理-SoftReference的使用
  9. 内存溢出、内存泄露和FULL GC
  10. 奇虎360WEB平台部招贤纳士之服务端开发