将UUID与RESTful URL标准结合使用的最佳实践是什么:/ collection / {Id}?

时间:2019-11-20 15:44:00

标签: java rest jpa restful-url

有些文章声称在使用JPA时避免了equals(从而避免了hashcode)的麻烦,在使用生成的ID时需要使用UUID,例如:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private UUID id;

由于RESTful服务和Spring Data(以及@Entity -ies)紧密耦合,因此合理的问题是: 使用此类资源URL的最佳实践是什么:RESTful服务标准在URL中声明{Id}-s,但在URL中看到UUID却很麻烦。 那么解决该问题的最佳实践是什么? (或者可能是我错了,URL上的数字是否像b5607d38-8fc1-43ef-b44e-34967083c80a一样不错?)

1 个答案:

答案 0 :(得分:1)

  

URL上的数字没什么不好,例如:b5607d38-8fc1-43ef-b44e-34967083c80a

这个;在URL中包含UUID没什么问题。

URI / URL规则由RFC 3986定义。字母,数字和-都是“未保留”字符,这意味着它们可以在URI中期望的任何位置使用。

在REST中,标识符是不透明的。客户端和通用组件不应从标识符本身中提取任何语义信息。这使服务器可以自由地将其需要的任何信息编码为自己的标识符。

/b5607d38-8fc1-43ef-b44e-34967083c80a

是资源的完美标识符。