如何优雅的使用contorller层

一个完整的后端请求由 4 部分组成:

  • 接口地址(也就是 URL 地址)

  • 请求方式(一般就是 get、set,当然还有 put、delete)

  • 请求数据(request,有 head 跟 body)

  • 响应数据(response)

  • 它可以很方便的对外提供数据接口服务,也是非常关键的出口,所以非常有必要进行规范统一,使其既简洁又优雅。

    controller层的职责为负责接收和响应请求,一般不负责具体的逻辑业务的实现。controller主要工作如下:

    接收请求并解析参数;

    调用service层执行具体的业务逻辑(可能包含参数校验);

    捕获业务异常做出反馈;

    业务逻辑执行成功做出响应;

目前controller层代码会存在的问题:

  • 参数校验过多地耦合了业务代码,违背了单一职责原则;

    可能在多个业务逻辑中抛出同一个异常,导致代码重复;

    各种异常反馈和成功响应格式不统一,接口对接不友好;

优雅写法一:统一返回结构

优雅写法二:统一包装处理

优雅写法三:参数校验

优雅写法四:自定义异常与统一拦截异常

相关推荐
Leo July4 小时前
【Java】Spring Security 6.x 全解析:从基础认证到企业级权限架构
java·spring·架构
星火开发设计5 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
码道功成5 小时前
Pycham及IntelliJ Idea常用插件
java·ide·intellij-idea
TTGGGFF5 小时前
控制系统建模仿真(一):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·matlab
消失的旧时光-19435 小时前
第四篇(实战): 订单表索引设计实战:从慢 SQL 到毫秒级
java·数据库·sql
2501_944424125 小时前
Flutter for OpenHarmony游戏集合App实战之贪吃蛇食物生成
android·开发语言·flutter·游戏·harmonyos
それども5 小时前
@ModelAttribute vs @RequestBody
java
雨中飘荡的记忆6 小时前
深度详解Spring Context
java·spring
Tao____6 小时前
JAVA开源物联网平台
java·物联网·mqtt·开源·ruoyi
Lhuu(重开版6 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式