2010-12-20 12 views
1

2つのRESTful API設計に関する質問があります。私がフルーツスタンドのウェブアプリを持っているとしましょう。私はすべて私が運ぶ果物や数、それらの成果に関する情報を返すようにしたい、と私はそれを行う:オブジェクト間のIDなしでRESTful URLが有効ですか?

http://myfruitstand.com/fruits 

質問1: 私は10個のみかんを持っている場合は、私は私ができることを考えていますで特定のオレンジ色の情報を得る:

http://myfruitstand.com/fruits/oranges/3 

しかし、上記のURLは、RESTfulなです - 私は「果物」とREST標準に準拠する「みかん」の間のIDが必要ですドント?または、この「果物」のURLにサブクラスの「オレンジ」がすぐに続いていますか?同様に 、私は私のオレンジに関するディスカッション・フォーラム(ない特定のオレンジ色)を持つようにしたい場合は、私はここにそれを置くことができます:

質問2

http://myfruitstand.com/fruits/oranges/comments 

を再度、上記のURLのRESTfulです'オレンジ'と 'コメント'の間にidがないので(もちろん、ここではIDは特定のオレンジについての議論を意味し、私はそれを望んでいません)ここでは、「オレンジ」の直後に「コメント」があるという合理的なサブクラスはありません。事前に

おかげで、チャック

答えて

0

はい、すべてのURLがいる限り、彼らが確定的と安らかされています。あなたが使用しているHTTPメソッド(削除のためにDELETE、編集のためにPOST、GET to read、など)について詳しく知っておいてください。

0
  1. フルーツリソースのIDが必要であるというご使用の説明からは信じられません。
  2. 同様に、第2のIDにもidは必要ありません。

あなたのURLがあなたのオブジェクト組織をモデル化している限り、私はあなたが良いと信じています。

また、私の個人的な気持ちは、アプリケーションのニーズを満たすために仕様から少しだけ離れなければならないケースが見つかった場合、それは妥当なことです。このような「モデル」の遵守を許可しないと、仕事をやり遂げるのが妨げられます。たとえば、RESTfulコンテキストでは、DELETE/PUT/POST/GET動詞の下にはっきりと現れないオブジェクトに関連するアクションを実行することがあります。あなたは完全なRESTfulnessを維持するためにそこにそれらのことをすすりますか?

必然的に今の私に殴るます:) RESTfulな達人/宗教によって気絶されないように、私は今、私の机の後ろに隠れてい

+0

アドバイスしてくれてありがとうのリストを返すことができて、私はあなたが –

1

それは、リソース・コレクションによって構築するために、よりRESTfulなことでしょう/ idペア、例えば/果物/:ID1 /アイテム/:ID2、あなたがオレンジの「s」を失った場合ID1 =オレンジ、ID2 = 3

/fruits/orange/items/3 

が続いて2番目の質問への答えは、あなたがそうであるように、また正しいだろうリソースコレクションではなくリソースのインスタンスとしてオレンジを扱う。

/fruits/orange/comments 

スライド48のhttp://www.slideshare.net/Wombert/phpnw10-designing-http-services-and-restful-interfaces

+0

:-)隠れている机の下過激を教えてくれませんので、私はそれが$ 64個の質問だと思います - オレンジを資源やタイプとして扱うか。 Arghhh ....私は複数の前線でこの問題にぶつかりました。それは、RESTを介して私のモデルを公開するときに頭に来るようです...ありがとう、アンディ –

+0

私はそれが表示される方法は、エンティティではなく、コレクションではなく親リソースのアイテムです。私は、言葉の意味をあまりあいまいにしないように言葉を更新します。 – Andy

1

自分でRESTfulスタイルについて質問しています。しかし、私がこれを取るのは:

フルーツストアの場合、「果実」は暗黙のうちではないのですか?どの程度単純:

/オレンジ/ {ID}また

ちょうどタイプオレンジの果実です/果物/ {ID}

/果物?タイプ=オレンジはあなたにオレンジ

関連する問題