考慮下面的類(注:這些類不會被討論,他們只是存在這種方式)REST-ful api是否應該與您的域模型密切相關?
class Foo {}
class Bar {}
class Event {
Foo foo;
Bar bar;
String event;
public Event(Foo foo, String event){
..
}
public Event(Bar bar, String event){
..
}
}
事件是依賴於富或酒吧,但從來沒有到兩個。
你建模你的REST API等(或多或少感覺自然你的API的用戶):
POST /foo/{FOO-ID}/event
GET /foo/{FOO-ID}/event --> gets the list of events for FOO with the given id
GET /foo/{ID}/event/{EVENT-ID}
POST /bar/{BAR-ID}/event
GET /bar/{BAR-ID}/event --> gets the list of events for BAR with the given id
GET /bar/{BAR-ID}/event/{EVENT-ID}
,或者你希望(這或多或少反映域模型):
POST /event
GET /event?id=123&type=FOO --> gets the list events of for FOO with id = 123
GET /event?id=456&type=BAR --> gets the list of events for BAR with id = 456
GET /event/{EVENT-ID}
GET /event --> not implemented, it would logically return ALL events(both FOO and BAR), but this has no business meaning
2個api中的哪個是'最''REST-ful?爲什麼?
「大多數」RESTful的問題充滿了分歧和意見,使其成爲StackOverflow問題和答案格式的糟糕候選人。 –
有框架使用這兩種解決方案,也有網站使用這兩種解決方案,所以你更喜歡哪一種?它是由你決定。 –
@TetsujinnoOni事實上,他們都是正確的?其實,這是我的根本問題。 – davidcyp