使用随机ID并在其上设计API,反模式?

时间:2015-06-22 06:39:14

标签: api design-patterns anti-patterns

我最近讨论了如何建模一些数据。上下文是我们必须为具有名称和其他信息的实体建模。

Entity:
    Long id
    String name
    String something
    int something-else

最初的方法是使用Id(随机数字)来唯一地标识实体,并且实体中的其余信息是可变的。然后我们将在

的行上设计一个API
Entity getEntity( long id );

这意味着有兴趣使用API​​的客户必须对ID进行硬编码或使用ENUM将id映射到“文本”引用并使用它。

另一种意见是使用名称本身作为唯一标识符并使​​用它。它将更加客户端友好,因为它不需要他们硬编码一些随机数,按字面值对读者没有任何意义。我有点同意这种观点,因为基于文本的id比一堆数字更有意义。但是,这意味着它自己的名称将是不可变的,对名称的任何编辑都意味着删除&创建

我想知道别人对这个论点和现实世界经历的看法。

0 个答案:

没有答案