我有一个关于如何使用复合键设计资源URI的问题.
我有一个名为货运的资源,有4个密钥/ ID:合作伙伴ID,初始邮政编码,最终邮政编码和重量.
实际上我的资源被设计为具有由数据库生成的增量ID,但是这种方法对于API消费者来说并不是那么好,例如,如果消费者/合作伙伴需要更新他们必须做的货运信息:
GET运费?initialZipcode = {VALUE}&finalZipcode = {VALUE}&weight = {VALUE}
上述操作的响应将是货运ID,因此最终他们可以更新信息:
PUT运费/ {ID}
合作伙伴ID由身份验证机制隐含.
对我来说,似乎很奇怪强迫合作伙伴在更新信息之前获得运费ID.
所以我的问题是:我该如何设计这个URI?
PUT运费/ initialZipcode/{VALUE}/finalZipCode/{VALUE}/weight/{VALUE}
我有没有考虑上面的设计?
另一个问题:将partnerId嵌入到身份验证机制中是一种很好的做法吗?我知道专业人士(容易消费者)和缺点(缓存,不可能共享URI等),但我不知道一般是一个好的或坏的做法.
谢谢!