2017-04-21 20 views
1

我的一位朋友正在開發一個RESTful HTTP API。他向公司的架構師展示了他的解決方案,他說他的解決方案是錯誤的,因爲在GET中公開的資源與POST中的資源結構不同。也就是說,在GET上返回的資源比在POST上傳遞的資源少。除了說這不是RESTful,建築師沒有提供任何論據。REST - 所有動詞之間的資源結構是否匹配?

REST架構中是否有任何規則說任何動詞的資源結構都應該是相同的?如果是,爲什麼推薦?

感謝

回答

2

對REST架構contrains描述如下:https://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints

他們都沒有描述的東西,在一個響應類型(GET,POST,...)應具有相同的結構,然而GET結果應該有足夠的信息能夠做出POSTDELETE請求(通過表示操作資源)。這是因爲如果所需的修改或刪除參數不可用,您將無法修改或刪除您的資源;例如從您的GET您檢索值xy,但也需要值z能夠做一個POST,你將如何能夠修改此資源?

希望這回答你的問題。

+0

感謝您的回答。例如,如果我的資源是「用戶」,會發生什麼情況。當我進行POST創建新用戶時,我會傳遞一個「密碼」字段。所以當我進行GET時,我必須返回密碼,因爲這些信息對於POST是必需的? – peflorencio

+1

要創建'new'用戶,不需要在POST之前執行GET請求,因爲需要用戶進行交互。當你閱讀約束時,他們只需要'modify'和'delete',所以已經存在一個資源,並且我認爲每次你想更新你的'user'資源時發送密碼是不可取的。 – hakany

相關問題