Swagger中的常用注解

举报
小小张自由--张有博 发表于 2021/12/27 20:51:04 2021/12/27
【摘要】 Swagger中的常用注解

1、简介

​ Swagger是为了解决企业中接口(api)中定义统一标准规范的文档生成工具。很多采用前后端分离的模式,前端只负责调用接口,进行渲染,前端和后端的唯一联系,变成了API接口。因此,API文档变得越来越重要。swagger是一个方便我们更好的编写API文档的框架,而且swagger可以模拟http请求调用。

2、常用注解与示例

  • @Api()用于类:表示标识这个类是swagger的资源


  • @Api("用于类")
     @Controller
     public class swaggerTest(){
     }
    
  • @ApiOperation()用于方法:表示一个http请求的操作


  • @Api("ApiOperation测试")
    @Controller
    public class swaggerTest(){
        @ApiOperation(value = "apiOperationTest", notes = "apiOperation测试")
        public void apiOperationSwaggerTest(){
        }
    }
    
  • @ApiParam():用于方法,参数,字段说明:表示对参数的添加元数据(说明或是否必填等)


  • @Api("ApiParam测试")
    @Controller
    public class swaggerTest(){
        @ApiOperation(value = "apiOperationTest", notes = "apiOperation测试")
        public void apiOperationTest(@ApiParam(name = "id", value = "1", required = true) Integer id){
        }
    }
    
  • @ApiModel()用于类:表示对类进行说明,用于参数用实体类接收


  • @ApiModel(description = "实体类", value = "实体类")
    public class City implements Serializable {
       
    }
    
  • @ApiModelProperty()用于方法,字段:表示对model属性的说明或者是数据操作更改


  • @ApiModel(description = "实体类", value = "实体类")
    public class City implements Serializable {
        @ApiModelProperty(name = "id", value = "编号", required = false, exmaple = "1")
        private int id;
    }
    
  • @ApiIgnore()用于类,方法,方法参数:表示这个方法或者类被忽略


  • @ApiIgnore
    @Api(tags = {"Xxx控制类"})
    @RestController
    @RequestMapping("/xxx")
    public class XxxController {
    	
    }
    
  • @ApiImplicitParam()用于方法:表示单独的请求参数

    @ApiImplicitParams()用于方法,包含多个@ApiImplicitParam


  • @Api("测试1")
      @Controller
      public class swaggerTest(){
          @ApiOperation(value = "apiOperationTest", notes = "apiOperation测试")
          @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer", paramType = "query"),
                            @ApiImplicitParam(name = "name", value = "name", required = true, dataType = "String", paramType = "query")
        })
          public void apiOperationSwaggerTest(Integer id, String name){
          }
      }


实例

package com.tfjybj.integral.provider.controller;

import com.dmsdbj.cloud.tool.business.IntegralResult;
import com.tfjybj.integral.model.AuthLoginModel;
import com.tfjybj.integral.model.DingCodeLoginModel;
import com.tfjybj.integral.provider.service.AuthService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 调用权限接口
 *
 * @author Promsing(张有博)
 * @version 1.0.0
 * @since 2021/12/18 - 11:39
 */
@Api(tags = {"调用权限接口"})
@RequestMapping(value = "/authController")
@RestController
public class AuthController {

    @Autowired
    private AuthService authService;
    @ApiOperation(value = "登录")
    @PostMapping("login")
    public IntegralResult authLogin(@RequestBody AuthLoginModel authLoginModel){

        Object integralResult = authService.authLogin(authLoginModel);

        if (integralResult==null){
            return IntegralResult.build(IntegralResult.FAIL,"用户不存在",integralResult);
        }
        return IntegralResult.build(IntegralResult.SUCCESS,"返回成功",integralResult);
    }
    @ApiOperation(value = "免密码登录")
    @PostMapping("dingCodeLogin")
    public IntegralResult dingCodeLogin(@RequestBody DingCodeLoginModel dingCodeLoginModel){

        Object integralResult = authService.dingCodeLogin(dingCodeLoginModel);

        if (integralResult==null){
            return IntegralResult.build(IntegralResult.FAIL,"用户不存在",integralResult);
        }
        return IntegralResult.build(IntegralResult.SUCCESS,"返回成功",integralResult);
    }

}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。