博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC使用Swagger
阅读量:5840 次
发布时间:2019-06-18

本文共 4626 字,大约阅读时间需要 15 分钟。

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

我们这里使用SpringBoot来快速搭建一个MVC,同时使用Swagger插件。
pom.xml,主要是引用swagger2 

org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-logging
org.springframework.boot
spring-boot-starter-test
test
io.springfox
springfox-swagger2
2.6.1
io.springfox
springfox-swagger-ui
2.6.1
org.springframework.boot
spring-boot-maven-plugin
View Code

 Swagger2配置类

package cn.duanjt.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class Swagger2 {    /**     * 创建API应用     * apiInfo() 增加API相关信息     * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,     * 本例采用指定扫描的包路径来定义指定要建立API的目录。     *      * @return     */    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("cn.duanjt.controller"))//指定要扫描的包名                .paths(PathSelectors.any())                .build();    }        /**     * 创建该API的基本信息(这些基本信息会展现在文档页面中)     * 访问地址:http://项目实际地址/swagger-ui.html     * @return     */    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("Spring Boot中使用Swagger2构建RESTful APIs")                .description("更多请关注http://www.baidu.com")                .termsOfServiceUrl("http://www.baidu.com")                .contact("段江涛")                .version("1.0")                .build();    }}
View Code

 控制器StudentController

package cn.duanjt.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import cn.duanjt.pojo.Student;import io.swagger.annotations.Api;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiOperation;@RestController@RequestMapping("/student")@Api(description = "学生信息")public class StudentController {    @RequestMapping(path = "/getAll", method = RequestMethod.GET)    @ApiOperation(value = "获取所有用户信息", notes = "备注:获取所有用户信息")    public Student getAll() {        Student stu = new Student(1, "zhangsan", 20);        return stu;    }    @RequestMapping(path = "/getById", method = RequestMethod.GET)    @ApiOperation(value = "根据Id查询用户信息", notes = "备注:根据Id查询用户信息")    @ApiImplicitParam(paramType = "query", name = "id", value = "用户id", required = true, dataType = "Integer")    public Student getById(int id) {        Student stu = new Student(id, "zhangsan", 20);        return stu;    }        @RequestMapping(path = "/insert", method = RequestMethod.POST)    @ApiOperation(value = "新增用户信息", notes = "备注:新增用户信息")    public String insert(Student student){        System.out.println(student.toString());        return "成功";    }}
View Code

 说明:

1.需要在配置类Swagger2中指定需要扫描的包名

2.@Api标记在类上面,用于表示该类需要被Swagger扫描
3.@ApiOperation标记方法
4.@ApiImplicitParam标记方法,描述参数信息

 

运行之后,在浏览器输入:http://localhost:8080/swagger-ui.html

 

原文参考:

转载于:https://www.cnblogs.com/duanjt/p/10250127.html

你可能感兴趣的文章
php多文件上传-简单示例,适合初学参考。
查看>>
android性能优化
查看>>
【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
查看>>
Linux硬链接、软链接的创建及两者的区别
查看>>
apache httpd mpm配置
查看>>
SQL2008_R2_AA模式群集
查看>>
parted
查看>>
第一次在oschina发表文章
查看>>
Fresco使用介绍
查看>>
提升大学管理邮件服务器解决方案
查看>>
Java程序内存分析Java VisualVM(Visual GC)
查看>>
Evmd进程不断重启原因深究
查看>>
web uploader上传图片
查看>>
jquery 下载文件
查看>>
mysql数据库错误 Error writing file '/tmp/...' (Errcode: 28)
查看>>
MapReduce 模式、算法和用例(二)
查看>>
运维工程师工作中实用shell脚本与语句
查看>>
Linux 分区小觑
查看>>
ArcGIS站点
查看>>
ComponentOne Ultimate 2012 v2 新特性
查看>>