企业级SpringBoot教程(十一)springboot集成swagger2,构建Restful API
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相关推荐
- springboot集成swagger2构建RESTful API文档
在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可 ...
- dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3(十)之Spring MVC中使用 Swagger2 构建Restful API...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/55047193 1.Swagger2是什么? ...
- Spring Boot 集成Swagger2生成RESTful API文档
Swagger2可以在写代码的同时生成对应的RESTful API文档,方便开发人员参考,另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 使用Spring Boot可 ...
- Spring MVC中使用 Swagger2 构建Restful API
0.Spring MVC配置文件中的配置 [java] view plain copy <!-- 设置使用注解的类所在的jar包,只加载controller类 --> <span s ...
- SpringBoot教程(十一) | SpringBoot集成Mybatis
上一篇文章我们介绍了SpringBoot集成JdbcTemplate.简单体验了一下JdbcTemplate框架的用法,今天的内容比较重要,我们来介绍一下SpringBoot集成Mybatis的步骤. ...
- 整合swagger2生成Restful Api接口文档
整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...
- Spring Boot中使用Swagger2构建RESTful APIs
关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. S ...
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- asp编程工具_使用ASP.NET Core构建RESTful API的技术指南
译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术文章<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...
- 使用ASP.NET Core构建RESTful API的技术指南
译者荐语:利用周末的时间,本人拜读了长沙.NET技术社区翻译的技术文章<微软RESTFul API指南>,打算按照步骤写一个完整的教程,后来无意中看到了这篇文章,与我要写的主题有不少相似之 ...
最新文章
- 北斗导航 | C语言实现PPP(精密单点定位)
- 华为云电脑和马云无影比_阿里云打造未来电脑无影,却因为5G限制,很难达到普及...
- rem是如何实现自适应布局的?
- 大班线描机器人_大班美术教案机器人
- BCB 连接数据库和查询数据
- jq的each方法之退出循环与继续循环
- 用四级法测量计算机土壤电阻率,土壤电阻率的原理及测量土壤电阻率的测量方法...
- SharePoint Online 自定义Modern UI表单
- Laravel框架介绍与简介
- 谢晶:webpower中国区正在向“多渠道智能化营销”全面转型
- 智慧管廊可视化管理系统搭建
- 记实现多racecar仿真过程中遇到的问题(一)
- html页面字体缩小模糊怎么解决,ps字体模糊怎么变清晰 设置一下字体大小,是否一样...
- rt-thread通过spi连接W25Q32后无法读取ID
- jquery抓娃娃机代码
- 情侣纪念日网站html5源码教程
- Charles工具使用教程,以及注意事项。
- 中国物联网微控制器市场现状研究分析与发展前景预测报告(2022)
- 【C++入门】烦人的引用
- 格林纳达常驻WTO大使孙宇晨受邀出席美驻新大使的闭门午宴