我正在開發一個REST API,我對資源表示有個疑問。不同的資源表示(REST API)
假設我在/ app/person/{id} URI下獲得了「人員」資源。我需要一個XML表示法,基本上所有對象字段都是根節點下的XML節點。現在需求表明我們還必須支持另一種由專有架構強制執行的XML表示。
問題是:在REST最佳實踐下是否支持相同資源的專有內容類型(如「text/my-type」)?注意兩者都是XML格式,但格式不同,最重要的是它們沒有攜帶相同的信息(例如,一個表示可能包含其他字段,如「modified-since」)
重要!:我知道務實和保持它很簡單,它比指南和「最佳實踐」更重要,但我只是想知道這是在RESTful架構下走向何方。
如果您在API中指定URI命名方案(如/ app/person/{id}),那麼您的API是RPC,而不是REST。 – aehlke 2009-08-18 14:05:57
@Wahnfrieden 您能否解釋爲什麼URI命名方案意味着RPC。恕我不能贊同。/app/person/{id}是對個人資源的引用。除了說明哪裏可以找到人員資源,這個URI什麼也不做,完全是RESTful。當你使用URI來調用一個動作時,一個RPC URI就像/ app/dancing/dothefunkychicken?personid = {id}。 – 2009-08-18 15:34:42
@pablo是@Wahnfrieden確實知道REST是什麼。問題在於很多人試圖通過定義一組端點來定義REST API,就像他們定義RPC API一樣。 REST API不能以這種方式工作。 REST API設計應該關注媒體類型的定義。端點與客戶端以及API的RESTfulness完全無關。但是,服務器實現並不關心URL,因此在設計時很難讓人們忽略它們。 – 2009-08-18 20:36:29