我有一个关于如何使用复合键设计资源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等),但我不知道一般是一个好的或坏的做法.
谢谢!
我读了很多MongoDB文档,但我无法理解readConcern和readPreference选项之间的区别.
例如:如果我在读取关注选项中设置"多数"并将"主要"设置为我的读取偏好选项,结果是什么?这两个选项似乎是矛盾的.
我知道在查询级别我只能设置readConcern首选项,但在客户端级别我也可以设置readPreference.
我的 API 有一个限制,每页允许的最大项目数为 50。
例如,如果输入 51,返回给消费者的正确 HTTP 代码是什么?
我考虑过 HTTP 400(错误请求),因为消费者“知道”(基于 API 约定)最大值为 50。在这种情况下,我还将返回包含所描述错误的响应。
分页同样的问题。如果我有 20 行/对象,并且 API 使用者将 21 放入偏移参数中,我是否应该返回总计 = 0 的 HTTP 200?