我的一位朋友正在開發一個RESTful HTTP API。他向公司的架構師展示了他的解決方案,他說他的解決方案是錯誤的,因爲在GET中公開的資源與POST中的資源結構不同。也就是說,在GET上返回的資源比在POST上傳遞的資源少。除了說這不是RESTful,建築師沒有提供任何論據。REST - 所有動詞之間的資源結構是否匹配?
REST架構中是否有任何規則說任何動詞的資源結構都應該是相同的?如果是,爲什麼推薦?
感謝
我的一位朋友正在開發一個RESTful HTTP API。他向公司的架構師展示了他的解決方案,他說他的解決方案是錯誤的,因爲在GET中公開的資源與POST中的資源結構不同。也就是說,在GET上返回的資源比在POST上傳遞的資源少。除了說這不是RESTful,建築師沒有提供任何論據。REST - 所有動詞之間的資源結構是否匹配?
REST架構中是否有任何規則說任何動詞的資源結構都應該是相同的?如果是,爲什麼推薦?
感謝
對REST架構contrains描述如下:https://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints
他們都沒有描述的東西,在一個響應類型(GET,POST,...)應具有相同的結構,然而GET
結果應該有足夠的信息能夠做出POST
或DELETE
請求(通過表示操作資源)。這是因爲如果所需的修改或刪除參數不可用,您將無法修改或刪除您的資源;例如從您的GET
您檢索值x
和y
,但也需要值z
能夠做一個POST
,你將如何能夠修改此資源?
希望這回答你的問題。
感謝您的回答。例如,如果我的資源是「用戶」,會發生什麼情況。當我進行POST創建新用戶時,我會傳遞一個「密碼」字段。所以當我進行GET時,我必須返回密碼,因爲這些信息對於POST是必需的? – peflorencio
要創建'new'用戶,不需要在POST之前執行GET請求,因爲需要用戶進行交互。當你閱讀約束時,他們只需要'modify'和'delete',所以已經存在一個資源,並且我認爲每次你想更新你的'user'資源時發送密碼是不可取的。 – hakany