我正在构建一个 REST-API ,并且在研究提供给某些对象的 id类型时,我看到了{{ 3}}。
对象volume, volume snapshot, certificate, domain, firewall and load balancer
都具有字符串uuid。
对象:action, domain record, droplet, droplet snapshot, droplet kernel, droplet backup, droplet neighbor, image and SSH key
具有整数ID。
但是DigitalOcean API Documentation具有唯一的整数ID。
在每个对象的情况下使用整数ID或字符串ID的意图是什么?
我唯一想到的是,DigitalOcean在早期使用字符串ID不能仅仅将所有字符串ID切换为整数ID。
或
出于性能原因,所有短期或大量创建的对象通常具有整数ID,而具有字符串ID的对象则相反,长期且创建频率较低。
我制作了两个表,以更好地查看哪些对象具有字符串/整数ID。
答案 0 :(得分:1)
在DigitalOcean,我们已经标准化了使用字符串uuid的方法。主要动机之一是主键绑定与特定的数据存储实现相关,并且可能使架构重构更加困难。因此,使用整数ID的资源这样做是为了向后兼容,并且资源的使用时间更长(例如,我们的Droplet是我们的第一个产品,而负载均衡器和防火墙等则是最新的产品)。
完整披露:除其他事项外,我维护DigitalOcean的API文档。