【问题标题】:Best Practices on return for CRUDCRUD 返回的最佳实践
【发布时间】:2012-08-27 19:13:26
【问题描述】:

在 CRUD 操作中返回对象的最佳实践是什么(如果有的话)。就我而言,对于 Java。

例如,对于 CREATE,我想返回对象,它的 ID...?

【问题讨论】:

  • CRUD 应用程序的“最佳实践”当然很重要,但当您的 CRUD 应用程序遇到错误时,它并不总是像“最佳实践”那么重要......

标签: java crud


【解决方案1】:
  • create - 创建的对象。我知道,我知道它通常是同一个对象,但它既方便又优雅。

  • update - 也返回相同的对象。在某些框架中,例如 JPA 更新的对象可以是不同的实例,而不是提供的实例。

  • restore - 显然是您要恢复的对象。如果您正在恢复列表,请考虑实现分页 - 获取偏移量/最大值并返回包含在 Page 对象中的列表以及一些额外的元数据,例如条目总数。

  • 删除 - 这里没有什么可以返回的,void

【讨论】:

  • 创建通常会导致新的数据库生成 ID,因此返回的已创建对象的副本可能很有用。
  • 我认为您应该为 create 编辑 crate (无论如何都是一件小事)。对于 DELETE,如果删除是否正常,返回布尔值不是很好吗?
  • @elecay:错字,谢谢。写。 delete:这取决于你的服务的语义。如果您确定要删除的对象存在,请坚持使用void,如果找不到则抛出异常。如果您的服务接受可能不存在的对象,boolean 很好 (similar to Java collections)。
  • 6 年多过去了,我想是时候接受这个答案了。圣诞快乐。
  • R=恢复?我们什么时候改变了那个 CRUD 约定
【解决方案2】:

实际上并没有一套明确的最佳实践,但这里列出了我如何使用 CRUD procs:

创建:不传入数据或传入一些数据(例如,为新用户提供姓名、地址、电子邮件地址等)并获取新插入记录的新对象或主键。

读取:传递可以识别单个记录或一组记录的内容(例如,很可能是一个主键,如一个人的 id 或电子邮件地址)。

更新:传入所有要更新的数据。如果不更新数据,请确保允许传入空值,如果值为空,则跳过更新该列。

删除:传入一个标识符(例如,一个人的 id 或电子邮件地址)并且不返回任何内容 (void) 或指示删除成功的布尔值。

【讨论】:

    猜你喜欢
    • 2011-06-16
    • 2022-06-15
    • 2014-06-16
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多