接口设计-增删改查

关于增删改查的 接口设计,比较简单,有一些固定的做法可以使用。

查询列表

  • 查询列表的接口,带上分页的入参: pageNo,pageSize,非必选,并设置默认值。

  • 入参为 dto,根据 dto 从数据库查出实体对象 entity 后,转换为展示层 vo。

  • entity 对象转换为 vo,可以用 BeanUtils.copyProperties。

  • 必选参数,设置校验规则。

  • 查询列表,一般会根据更新时间(updateTime)降序。

  • 如果查询的某个参数如果是多选的,可以用逗号隔开。

  • 如果查询的某个参数要求模糊查询,可以用 like 查询数据库。

  • 排序的参数尽量不要超过两个,太多的排序会影响性能。

  • 如果对性能有要求,可以加缓存。

查看详情

  • 入参可以传 id, 根据id查询详情。

  • 如果对性能有要求,可以加缓存。

新增/修改

  • 新增和修改可以用同一个接口,根据 id 判断是新增还是修改,如果id 为空,说明是新增。
  • 如果查询列表/查看详情时用了缓存,新增/修改需要在修改了数据库后删除缓存,保持数据库和缓存的一致性。
  • 新增/修改,可以修改一下 updateTime,方便定位问题。
  • 新增/修改后,可以返回更新结果,判断是否更新成功。

导入导出

详情见: https://blog.csdn.net/sinat_32502451/article/details/133026409

如何写一个接口:

详情见:https://blog.csdn.net/sinat_32502451/article/details/133715927

相关推荐
copyer_xyf8 分钟前
Agent 记忆管理
后端·python·agent
葫芦和十三7 小时前
图解 MongoDB 02|BSON:你以为存的是 JSON,其实是带类型的二进制
后端·mongodb·agent
葫芦和十三7 小时前
图解 MongoDB 01|文档数据库
后端·mongodb·agent
陈随易9 小时前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人10 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
candyTong10 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
Rust研习社13 小时前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
IT_陈寒13 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
CaffeinePro14 小时前
Pydantic深度使用:数据校验、枚举、ORM映射
后端·fastapi
Chenyiax14 小时前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端