Swagger注解使用示例

Swagger注解使用示例1 Swagger 是什么 Swagger 是一个规范和完整的框架 用于生成 描述 调用和可视化 RESTful 风格的 Web 服务 2 Swagger 受欢迎的原因 Swagger 能成为最受欢迎的 RESTAPIs 文档生成工具之一 有以下几个原因 Swagger 可以生成一个具有互动性的 API 控制台 开发者可以用来快速学习和尝试 API Swagger 可以生成客户端 SDK 代码用于各种不同的平台上的实现 Swagger 文件可以在许多不同的平台上从代码注释中自动生成 Swagger 有

1、Swagger是什么

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

2、Swagger受欢迎的原因

Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:

  • Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
  • Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
  • Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
  • Swagger 有一个强大的社区,里面有许多强悍的贡献者。

 3、引用Swagger相关依赖

/?对应的版本号 可以自己修改 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.2.2</version> </dependency>

4、创建SwaggerConfig配置类

package com.shucha.deveiface.web.config; import org.springframework.beans.factory.annotation.Value; 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.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; / * @author zhouziqiang */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Value("${swagger.enable:true}") private Boolean swaggerEnable; @Bean public Docket swaggerApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(swaggerEnable) .select() //com.shucha.deveiface.web.controller 就是你控制器的路径 .apis(RequestHandlerSelectors.basePackage("com.shucha.deveiface.web.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("deve-iface-API") .contact(new Contact("你的邮箱名称", "", "你的邮箱地址")) .description("API文档") .version("1.0.0-SNAPSHOT") .build(); } } 

5、Swagger基本注解使用

@Api:用在类上,说明该类的作用。

@ApiOperation:注解来给API增加方法说明。

@ApiImplicitParams : 用在方法上包含一组参数说明。

@ApiImplicitParam:用来注解来给方法入参增加说明。

@ApiResponses:用于表示一组响应

@ApiImplicitParam注解使用

paramType:指定参数放在哪个地方

header:请求参数放置于Request Header,使用@RequestHeader获取

query:请求参数放置于请求地址,使用@RequestParam获取

path:(用于restful接口)–>请求参数的获取:@PathVariable

body:(不常用)

form(不常用)

name:参数名

 

dataType:参数类型

 

required:参数是否必须传

true | false

value:说明参数的意思

 

defaultValue:参数的默认值

 

6、实际demo

package com.shucha.deveiface.web.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sdy.common.model.Response; import com.sdy.mvc.controller.BaseController; import com.shucha.deveiface.biz.model.App; import com.shucha.deveiface.biz.model.Module; import com.shucha.deveiface.biz.model.Users; import com.shucha.deveiface.biz.service.ModuleService; import com.shucha.deveiface.biz.service.UsersService; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.List; / * @author tqf * @Description * @Version 1.0 * @since 2020-08-25 14:58 */ @Slf4j @RestController @RequestMapping("/test") @Api(tags = "测试使用控制器") public class TestController extends BaseController { @Autowired UsersService UsersService; @Autowired ModuleService ModuleService; @GetMapping("pagedata") @ApiOperation(value = "测试获取值") @ApiImplicitParams({ @ApiImplicitParam(dataType = "String", name = "id", value = "查询id"), }) public Response pagedata(HttpServletRequest request, Page<App> page)throws Exception{ page.getSize(); List<Users> list = UsersService.list(); for (Users users :list){ users.getId(); } return Response.success(list); } @PostMapping("getdata") @ApiOperation(value = "获取list数据") public Response getData(HttpServletRequest request) throws Exception{ return Response.success(); } } 

启动项目之后你的访问地址加上swagger-ui.html    比如:http://localhost:8080/swagger-ui.html 

Swagger注解使用示例

7、参考文献

Swagger官网 :http://swagger.io/

Spring Boot & Swagger UI : http://fruzenshtein.com/spring-boot-swagger-ui/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230554.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月16日 上午10:01
下一篇 2026年2月16日 上午10:22


相关推荐

  • leetcode-172. 阶乘后的零[通俗易懂]

    leetcode-172. 阶乘后的零[通俗易懂]给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。class Solution {public: int trailingZeroes(int n) { int ans = 0; for(int i = 5;i <= n;i += 5){

    2022年8月9日
    6
  • c语言 无锁编程,无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)「建议收藏」

    c语言 无锁编程,无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)「建议收藏」1.无锁编程与有锁编程的效率无锁编程,即通过CAS原子操作去控制线程的同步。如果你还不知道什么使CAS原子操作,建议先去查看相关资料,这一方面的资料网络上有很多。CAS实现的是硬件级的互斥,在线程低并发的情况下,其性能比普通互斥锁高效,但是当线程高并发的时候,硬件级互斥引入的代价与应用层的锁竞争产生的代价同样都是很大的。这时普通锁编程其实是优于无锁编程的。硬件级原子操作使应用层的操作变慢,而且无法…

    2022年5月2日
    46
  • 程序员该不该去外包公司_程序员项目外包

    程序员该不该去外包公司_程序员项目外包最近,关于“外包”的话题,在程序员之间讨论得十分热烈。究竟什么叫外包呢?在IT行业,有些程序员在大公司的办公楼里,跟正式员工们一起工作。但是,他们并不隶属于这家公司,而是属于第三方公司,比如博彦科技,比如文思海辉,比如中软国际……这些人就像是后妈的孩子,他们的薪酬远不如大公司的正式工,上升空间也有限。他们有个共同的名字,叫做外包人员。那么,年轻的程序员们该不该进入…

    2022年9月30日
    3
  • Android开发ListView使用OnScrollListener实现分页加载数据

    Android开发ListView使用OnScrollListener实现分页加载数据

    2022年1月17日
    63
  • Android逆向(一)Android逆向工具(一)

    Android逆向(一)Android逆向工具(一)最近一周时间 在学习和研究 Android 逆向 接下来一段时间 写一系列 Android 逆向的博客 来总结和记录自己所掌握的知识 也希望为正在学习 Android 逆向的朋友带来一点帮助 首先 简单说一下自己对 Android 逆向的理解 Android 逆向 就是把已经编译好的 apk 通过使用一系列的工具 获取到 源代码 获取到源代码后 我们可以替代和修改其中的一些代码 重新打包 生成新

    2026年3月20日
    6
  • JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    2022年3月13日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号