控制器(Controller)规范

  1. 控制器注解引入

    1. @RestController:标注类为Restful规范的控制器。
    2. @RequestMapping:请求路径,需遵守Restful规范。
    3. RequiredArgsConstructor(onConstructor = @__(@Autowired)):
  2. 设定请求方式
    1. ​ 查询方法:@GetMapping
    2. ​ 添加:@PostMapping
    3. ​ 修改:@PutMapping
    4. ​ 删除:@DeleteMapping
  3. ​ 不允许使用:
  4. ​ @RequestMapping(method =XXX),例如:@RequestMapping(value = "/token", method = RequestMethod.GET)
  5. 入参设计
    1. 入参需以lowerCamelCase风格命名。
  6. 设定请求参数方式
    1. 表单提交:直接使用VO类或具体参数名接收。
    2. @PathVariable:路径变量。
    3. @RequestParam:参数请求。
  7. 校验请求参数
    1. 非空:@NotNull(message = "XXX")。
    2. 使用注解@Validated,使得参数自动校验生效,它是spring-contex中的注解。
    3. 对象可在变量上进行定义。
  8. 方法返回
    1. 查询、修改、添加返回:操作后的对象。
    2. 其他业务操作返回:操作状态。
      1. 返回对象:ResultUtil.data(返回对象);
      2. 操作成功: ResultUtil.success("返回内容");
      3. 操作失败:ResultUtil.error("返回内容");
  9. 自动生成接口文档
    1. 使用SwaggerAPI。
    2. @Api():添加在类名之上,标注控制器实现内容。
    3. @ApiOperation(value = "XX"):添加方法名上,标注方法实现内容。
    4. @ApiImplicitParams、@ApiImplicitParam:添加方法名上,标注参数内容。

Controller示例代码:

/*** 买家端,会员API** @author Chopper* @version v4.1* @Date: 2020/11/16 10:07 下午* @Description:* @since*/
@RestController
@Api(tags = "买家端,会员API")
@RequestMapping("/buyer/members")
@Transactional(rollbackFor = Exception.class)
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class MemberBuyerController {/*** 会员*/private final MemberService memberService;/*** 会员token生成*/private final MemberTokenGenerate memberTokenGenerate;@ApiOperation(value = "登录接口")@SystemLog(description = "登录", type = LogType.LOGIN)@ApiImplicitParams({@ApiImplicitParam(name = "username", value = "用户名", required = true, paramType = "query"),@ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "query")})@PostMapping(value = "/login")public Result<Object> smsLogin(@NotNull(message = "用户名不能为空") @RequestParam String username,@NotNull(message = "密码不能为空") @RequestParam String password) {Member member = this.memberService.usernameLogin(username, password);if (member == null) {throw new ServiceException(MessageCode.E21004.getValue());}Token token = memberTokenGenerate.createToken(member.getUsername(), false);return ResultUtil.data(token);}
}

控制器(Controller)规范相关推荐

  1. ASP.NET MVC 5 入门教程 (2) 控制器Controller

    原文:ASP.NET MVC 5 入门教程 (2) 控制器Controller 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get ...

  2. kafka专题:kafka的总控制器Controller、消费者重分配策略等核心设计原理详解

    文章目录 1. Kafka核心总控制器Controller 1.1 核心总控制器Controller的Leader选举 1.2 Partition副本选举Leader机制 2. 消费者消费偏移量off ...

  3. 【SpringMVC 笔记】控制器 Controller 与 RestFul 风格

    SpringMVC 笔记 控制器 Controller 实现 Controller 接口 创建控制器 @Controller 注解创建控制器 @RequestMapping 使用 method 属性指 ...

  4. ASP.NET/C# 控制器Controller的深入理解

    ASP.NET/C# 控制器Controller的深入理解 1.理解控制器 1.1控制器的角色 (1)中转作用:控制器通过前面的学习大家应该知道它是一个承上启下的作用,根据用户输入,执行响应行为(动作 ...

  5. Controller规范,摘自晓风轻专栏

    先说说Controller规范,主要的内容是就是接口定义里面的内容,你只要遵循里面的规范,controller就问题不大,除了这些,还有另外的几点: 1 所有函数返回统一的ResultBean/Pag ...

  6. yii2 ajax访问控制器,yii2控制器Controller Ajax操作示例

    本文实例讲述了yii2控制器Controller Ajax操作的方法.分享给大家供大家参考,具体如下: request->isAjax) { $data = Yii::$app->requ ...

  7. 控制器Controller的使用

    Java知识点总结:想看的可以从这里进入 目录 3.3.控制器Controller 3.3.1.接收参数 1.普通参数 2.URL参数 3.JSON参数 3.3.2.共享数据 3.3.3.转发和重定向 ...

  8. 控制器Controller(保姆级教程)

    控制器Controller(保姆级教程) 实现Controller接口 使用注解@Controller(声明Spring类的实例是一个控制器) 控制器复杂提供访问应用程序的行为 通常通过 接口定义和 ...

  9. 后端——egg.js是什么、egg.js安装、约定规则、路由Router、控制器Controller、跨域

    目录 一.egg.js是什么 二.egg安装 三.约定规则 四.路由Router 五.控制器Controller 六.跨域 1.egg-cors 1.下载 2.开启插件 3.配置插件 4.使用: 2. ...

  10. Controller规范和接口定义,添加一条新数据并返回此数据的ID(主键)

    参考文章: 烂代码之:Controller规范和接口定义 添加一条新数据并返回此数据的ID(主键) 删除数据返回boolean 添加数据后返回Id <insert id="" ...

最新文章

  1. Java IO 流 学习 总结
  2. Windows Forms高级界面组件-使用状态栏控件
  3. C语言入门经典——基础知识(数据类型)(32位与64位系统基本数据类型的字节数)
  4. what to improve on my case study?
  5. 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
  6. 【收藏】mydockfinder下载地址
  7. YAML简介和简单说明
  8. python定时任务crontab_【Python】Linux crontab定时任务配置方法(详解)
  9. 10天学安卓-第二天
  10. mysql 主从 通俗易懂_MySQL 主从同步架构中你不知道的“坑”(完结篇)
  11. 关于this和base
  12. 训练千亿参数模型的法宝,昇腾CANN异构计算架构来了~
  13. Java 实现导出excel表 POI
  14. C++:stack.pop() error: cannot initialize a variable of type ‘char‘ with an rvalue of type ‘void‘
  15. STM32嵌入式基础开发04-PS2手柄SPI通讯数据输出(4_SPI)
  16. 通过终端命令查看到目的IP所经过的路由
  17. Android存储管理
  18. 基于QPSK+LDPC的微波信道误码率matlab仿真
  19. 循环结构(计算0到100之间的奇数和偶数的和)
  20. testcenter自动化

热门文章

  1. python 提取出字符串括号中的内容,正则表达式
  2. 探索 Java 中的 Date, Calendar, TimeZone 和Timestamp
  3. HP G32笔记本 拆机图解
  4. 疫苗预约系统,疫苗接种管理系统,疫苗预约管理系统毕设作品
  5. WannaCry弱爆了!韩国IDC被Erebus软件勒索683万
  6. 理财产品信息管理系统项目代码分享
  7. 多态中对象的上下转型
  8. Tableau 快速表计算 显示百分比 / 累计走势
  9. 【故障处理】队列等待之enq: TX - row lock contention
  10. linux内核中内存耗尽OOM killer