假设我想构建一个 REST 服务来制作如下所示的笔记:
GET /notes/ // gives me all notes
GET /notes/{id} // gives the note identified by {id}
DELETE /notes/{id} // delete note
PUT /notes/{id} // creates a new note if there is no note identified by {id}
// otherwise the existing note is updated
由于我希望我的服务是幂等的,所以我使用 PUT 来创建和更新我的笔记,这意味着新笔记的 id 是由客户端设置/生成的。
我曾考虑过使用 GUID/UUID,但它们很长,并且会使记住 URL 变得相当困难。同样从数据库的角度来看,当在大表中用作主键时,从性能的角度来看,这样的长字符串 id 可能会很麻烦。
你知道一个好的 id 生成策略,它生成短 id 并且当然可以避免冲突吗?