控制器Controller

Controller中不允许编写业务逻辑处理。

原则上禁止在Controller中使用事务注解

so-fast框架规定控制器的职责是负责接受用户的请求,以及将业务处理结果返回给用户的流程控制。在控制器中不应该编码业务逻辑处理代码,业务逻辑代码应该编写在Service层,控制器只负责调用获取结果。

Controller类的定义

Controller的定义需要遵循以下规范:

@RestController注解,表示提供rest api

@RequestMapping注解,指定api的通用前缀path,path需遵循REST规范,使用名词来表示资源路径

@Api注解,书写swagger文档

需要继承父类BaseController

Good:

@Api(value = "字典数据操作API", tags = "字典数据")
@RestController
@RequestMapping("/dict/data")
public class DictDataController extends BaseController {

Controller中的Method定义

Method的定义需要遵循以下编码规范:

使用@GetMapping或@PostMapping注解,指定api的path,以及请求Method。

使用@LogOperator注解,进行操作日志的记录

使用@ApiOperation注解,书写swagger文档

使用R<?>的泛型作为统一响应体

Good:

@ApiOperation(value = "根据ID查询")
@LogOperator(title = "字典管理-根据ID查询字典", type = Constants.SELECT_OPERATOR)
@GetMapping(value = "/{id}")
public R<DictData> getById(@PathVariable("id") String id) {
    return R.data(iDictDataService.getById(id));
}

注意:R<?>泛型需要根据实际返回值的类型进行具体化,不推荐直接写R

Copyright © 2020. 恩梯梯数据(中国)信息技术有限公司. all right reserved,powered by Gitbook该文件修订时间: 2021-01-07 15:24:32

results matching ""

    No results matching ""