2009-08-24 12 views
0

私は安らかなWebサービスを持っています。予約室を変更することができます。どのURIが良い解決策ですか?リソース識別子に名前を付けるには?

A)http://localhost/hotel/Xhotel/Reservation/15

B)のみ要件に依存http://localhost/hotel/Xhotel/Room/4/Reservation/15

C)http://localhost/hotel/Xhotel/Reservation/15/Room/4

+1

「予約室は別の部屋に割り当てることができますか?」とはどういう意味ですか? –

+0

私はこれを解消しようとしていましたが、彼が何を求めているのかわかりません – Will

答えて

2

たとえば予約が複数の部屋にまたがる場合、オプションb)とc)は完全な予約にアクセスするための適切なURLにはなりません。

また、ご予約IDが全客室で一意である場合や、客室IDが予約を一意に識別するために必要な場合も、もう1つの質問があります。

+0

私はオプションa)を選択した場合、どのように部屋と予約の関係を確立する必要がありますか? – Iguramu

+0

下記の私の答えを参照してください。 –

0

まずはRESTfulと書いてください。 RESTは省略形です。
2番目に、予約IDでアクセスする必要がありますので、最初のオプションが最適です。
予約(ユニークキー:予約ID)には多くのルームがあります(Forign Key:予約ID)。
2番目のオプションを使用して、特定の部屋の予約を確認します。 また、3番目のオプションを使用して、予約の客室に関するデータを表示することもできます。

+0

このサイトを確認した場合:http://stackoverflow.com/questions/207477/restful-url-design-for-searchあなたが見るように、車とガレージの間には関係があります。だから私は、ガレージ/ yyy/carsが部屋/ 4 /予約/ 15も良いオプションだと思う。 – Iguramu

+0

それはちょうど私の2セントです、あなたはあなたが正しいと思う何でもしなければなりません。 –

0

リソースの各表現は、単一のURIのみを持つ必要があります。予約が重要な部分で部屋が変更される場合は、部屋番号をURIに含めないでください。しかし、RESTは、あなたがその制約に従う限り、あなたのURIがどのように見えるかは特に気にしません。

:あなたは、上記の本3の選択肢へのお願いはLINKを美化だけのためであるか、あなたがつかむなどの要求からすべての結果を取得するつもりならば、問題はURLまたはURIではありません

0

は、問題があります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; 

は、これは、我々はあなたが持っているURIの3形式から得ることができるものであると2は、最後のと同じです。

あなたは、これはちょうどあなたのプログラムを行いますされていない場合、それは大丈夫です要求からのデータを活用しようとしている場合は、あなたが

に試してみてくださいのみ予約をしていた場合ので、最初に示唆してい効果なし大きく見えますそれらを一意にするために、ホテルUUIDに基づいてUUID v3またはv5として予約IDを作成します。