Spring mvc Swagger2 API 集成记录
来源:互联网 发布:大数据 徐子沛 微盘 编辑:程序博客网 时间:2024/09/21 08:57
1、swargger 简介
Swagger™的目标是为REST APIs 定义一个标准的,与语言无关的接口,使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能。当服务通过Swagger定义,消费者就能与远程的服务互动通过少量的实现逻辑。类似于低级编程接口,Swagger去掉了调用服务时的很多猜测。
现记录一下swargger 与spring mvc集成配置过程,以备忘。
2、jar包依赖
<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>
3、swagger配置文件
@Configuration@EnableWebMvc@EnableSwagger2public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).enable(WebConfig.isEnableSwagger()).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.boco")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("系统APIs").description("").termsOfServiceUrl("http://www.boco.com/").version("1.0").build();}}其中 eable(boolean) 可以控制开启或关闭接口文档功能,在生产环境可将其关闭
4、Spring mvc中配置
在自动扫描目录中加入 springfox,
<context:component-scanbase-package="springfox,......" />
<mvc:resources mapping="swagger-ui.html" location="classpath*:/META-INF/resources" /><mvc:resources mapping="/webjars/**"location="classpath*:/META-INF/resources/webjars" />
5、Controller 方法中加入swargger注解
@RestController@RequestMapping("/equipment")public class EquipController extends BaseController {@Autowiredprivate EquipmentService equipmentService;/** * 获取设备类型列表及关联信息 */@ApiOperation("获取设备类型列表")@RequestMapping(value = "/getEquipTypes", method = RequestMethod.GET)public OutResult<List<EquipType>> getEquipTypeInfo(HttpServletRequest request, HttpServletResponse response) {OutResult<List<EquipType>> result = new OutResult<>();try {List<EquipType> equipTypes = equipmentService.getEquipTypes();returnSuccessInfo(result);result.setResult(equipTypes);} catch (Exception e) {log.error("获取设备类型列表异常", e);returnFailInfo(result);}return result;}/** * 获取设备类型列表及关联信息 */@SuppressWarnings("unchecked")@ApiOperation("分页获取设备列表")@RequestMapping(value = "/getEquipments", method = RequestMethod.GET)public OutResult<PageBean<Equipment>> getEquipments(HttpServletRequest request,@ModelAttribute EquipmentQueryBo equipmentQueryBo) {OutResult<PageBean<Equipment>> result = new OutResult<>();try {Page<Equipment> equipments = equipmentService.selectByPage(equipmentQueryBo);returnSuccessInfo(result);result.setResult((PageBean<Equipment>) parsePageBean(equipments));} catch (Exception e) {log.error("获取设备列表异常", e);returnFailInfo(result);}return result;}/** * 获取设备类型列表及关联信息 */@ApiOperation("保存设备")@RequestMapping(value = "/saveEquipment", method = RequestMethod.POST)public OutResult<?> saveEquipment(HttpServletRequest request, HttpServletResponse response,@ModelAttribute Equipment equipment) {OutResult<?> result = new OutResult<>();try {equipmentService.saveEquipment(equipment);returnSuccessInfo(result);} catch (ErrorInfoExeception e) {returnFailInfo(result);result.setMessage(e.getMessage());} catch (Exception e) {log.error("获取设备列表异常", e);returnFailInfo(result);}return result;}/** * 删除设备 */@ApiOperation("删除设备")@RequestMapping(value = "/deleteByIds", method = RequestMethod.POST)public OutResult<?> deleteByIds(HttpServletRequest request, HttpServletResponse response,@ApiParam(value = "设备id字符串以逗号间隔", example = "1,2") @RequestParam String ids) {OutResult<?> result = new OutResult<>();try {equipmentService.deleteEquipmets(ids);returnSuccessInfo(result);} catch (ErrorInfoExeception e) {returnFailInfo(result);result.setMessage(e.getMessage());} catch (Exception e) {log.error("删除设备异常", e);returnFailInfo(result);}return result;}}
@ApiModelpublic class Equipment {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@ApiParam("设备id")private Long id;@ApiParam("设备类型")private String type;@ApiParam(hidden = true)@Transientprivate String typeName;@ApiParam("设备编号")private String code;@ApiParam("设备名称")private String name;@ApiParam("ip")private String ip;@ApiParam("端口")private Integer port;@ApiParam(hidden = true)private Float longitude;@ApiParam(hidden = true)private Float latitude;@ApiParam("安装位置")private String address;// 省略getters setters}
6、启动项目
通过连接访问api文档http://ip:port/{context path}/swagger-ui.html如下图所示
0 0
- Spring mvc Swagger2 API 集成记录
- spring mvc 4.2 集成 swagger2
- Swagger2与Spring mvc集成
- Spring MVC中快速集成swagger2
- Spring Boot 集成Swagger2
- Spring Boot集成Swagger2
- spring boot集成swagger2
- 8.5 Spring Boot集成Swagger2构建自动化Rest API文档
- Spring MVC 整合 Swagger2
- spring mvc 4 + swagger2
- Spring MVC中使用 Swagger2 构建Restful API
- Spring MVC中使用 Swagger2 构建Restful API
- 【实践笔记】Spring MVC中Restful API使用 Swagger2 构建
- Spring MVC中使用 Swagger2 构建Restful API
- Spring MVC中使用 Swagger2 构建Restful API
- Spring MVC中使用 Swagger2 构建Restful API
- spring-boot集成Springfox[Swagger2]
- Spring Boot (一) 基础搭建、兼容jar启动及war tomcat启动、集成Swagger2 API。
- 学习领域驱动之前的准备——事件驱动
- OpenStack Ocata版本不可不知的51个新特性
- iPhone手机使用:手机上面的App Store突然变成英文(iTunes也是英文),然后把英文还原成中文的方法
- ajax跨域
- Linux 程序之环境变量
- Spring mvc Swagger2 API 集成记录
- mysql 安装,首次登录,创建用户
- win7 x64下安装python-opencv 及 “not a supported wheel”解决
- 计算机视觉:4个坐标系的关系
- B
- 得到当前的工作目录
- Selenium IDE录制登录操作分享
- keras使用入门及3D卷积神经网络资源
- JVM Java内存分配