我有一个 Restful 网络服务。预订房间可以更改。哪个 URI 是更好的解决方案?
a) http://localhost/hotel/Xhotel/Reservation/15
我有一个 Restful 网络服务。预订房间可以更改。哪个 URI 是更好的解决方案?
a) http://localhost/hotel/Xhotel/Reservation/15
这仅取决于您的要求。
例如,如果预订可以跨越多个房间,那么选项 b) 和 c) 就不是访问完整预订的好 URL。
另一个问题是您的预订 ID 在所有房间中是否唯一,或者是否还需要房间 ID 来唯一标识预订。
资源的每个表示应该只有一个 URI。如果预订是重要部分,并且房间可以更改,则不要在 URI 中包含房间号。然而,REST 并不特别关心你的 URI 是什么样子,只要你遵循它的约束。
首先,您编写 RESTful。REST 是一个缩写。
其次,imo您应该通过预订ID访问它们,因此第一个选项是最好的。
Reservation(唯一键:Reservation ID)有很多房间(外键:Reservation ID)。
使用第二个选项查看特定房间的预订情况。您还可以使用第三个选项来显示有关预订房间的数据。
问题不在于 URL 或 URI,问题在于您对上述 3 个选项的请求是否只是为了美化 LINK 或者您要从请求中获取或获取所有结果,例如:
一个)
$_GET['hotel'] = "Xhotel";
$_GET['Reservation'] = 15;
b)
$_GET['hotel'] = "Xhotel";
$_GET['Room'] = 4;
$_GET['Reservation'] = 15;
C)
$_GET['hotel'] = "Xhotel";
$_GET['Reservation'] = 15;
$_GET['Room'] = 4;
这就是我们可以从您拥有的 3 种 URI 格式中得到的结果,最后 2 种是相同的。
如果您要利用请求中的数据,那没关系,如果不是,这只会使您的程序看起来更大而没有效果,所以如果您只做保留,我建议第一个
尝试将 Reservation ID 设为基于酒店 UUID 的UUID v3 或 v5,以使其唯一。