我有多个形式为/geodata/someObjects
和/geodata/someObjects/{objectId}
的端点。
事实证明存在多个坐标系。所以我想具体说明一下。
最佳实践是什么?我应该追加吗/geodata/someObjects/coordinateSystems/{coordinateSystemId}
/geodata/someObjects/{objectId}/coordinateSystems/{coordinateSystemId}
或prepend/geodata/coordinateSystems/{coordinateSystemId}/someObjects
/geodata/coordinateSystems/{coordinateSystemId}/someObjects/{objectId}
?
直觉上我会追加它,但是将它添加到每个端点的末尾看起来不太正确。
1条答案
按热度按时间nle07wnf1#
REST不关心您对资源标识符使用什么拼写约定。
在设计带有路径段的标识符时,您可能希望检查相对分辨率的含义,也就是说,您希望点段在设计中有用吗?
这种拼写方式意味着您可以使用点段链接具有相同objectId和不同coordinateSystemId的资源
这种拼写意味着您可以使用点段链接具有相同coordinateSystemId和不同objectId的资源。
我会将coordinateSystemId作为查询参数而不是路径参数提交
这给了你一个不同的权衡;在资源标识符的查询部分将信息表示为application/x-www-form-urlencoded键值对确实使HTML GET表单更容易;但作为交换,你可以用点段的一些便利性来交换。
最佳实践是什么?
选择最适合你最关心的人的拼写。