我有一个Restful网络服务。预订房间可以改变。哪个URI是更好的解决方案?
a)http://localhost/hotel/Xhotel/Reservation/15
答案 0 :(得分:2)
这仅取决于您的要求。
例如,如果预订可以跨越多个房间,那么选项b)和c)将不是访问完整预订的好网址。
另一个问题是,如果您的预订ID在所有房间中都是唯一的,或者如果需要房间ID以便唯一地标识预订。
答案 1 :(得分:0)
首先你写RESTful。 REST是缩写。
其次,你应该通过预订ID访问它们,所以第一个选项是最好的
预订(唯一密钥:预订ID)有许多房间(忘记密钥:预订ID)
使用第二个选项查看特定房间的预订。
您还可以使用第三个选项显示预订中有关房间的数据。
答案 2 :(得分:0)
资源的每个表示应该只有一个URI。如果预订是重要部分,并且房间可以更改,则不要在URI中包含房间号。但是,只要遵循约束条件,REST就不会特别关注URI的外观。
答案 3 :(得分:0)
问题不在于URL或URI,问题是如果上面描述的对这3个选项的请求只是为了美化LINK或者你要抓住或从以下请求获得所有结果:
<强> A)强>
$_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种格式获得的,而后两种格式是相同的。
如果您要利用请求中的数据,那就没关系,如果不是这样只会让您的程序看起来更大而没有效果,所以建议您第一次只做预订
尝试根据酒店UUID将预订ID设为 UUID v3或v5 ,以使其唯一。