我從鏈接uris中獲得好處,但這不是這個問題的關鍵。REST vs SOAP evolvability
我的意思是可拓展性是在服務中添加新功能或修改(如果可能)現有的功能,實際上就是這樣。
因爲REST社區在進化性方面傾向於談論SOAP,所以SOAP並沒有那麼糟糕。例如:
- 在REST中,我們可以添加新的rel-in SOAP,我們可以添加新的方法。舊客戶的兩種 都將繼續使用新服務。
- 在REST,我們可以添加新的表單字段並設置其默認值 - 在 SOAP我們可以有服務論據一些ServiceArgs類和 一個新字段添加到ServiceArgs。這是醜陋的,但它的作品。
什麼是SOAP客戶端中斷時的可演化性示例,而您對此無能爲力,而REST客戶端正在良好地處理這種情況?
謝謝!
謝謝你的擴展答案。 顯然,SOAP服務比RESTful服務更不易進化。然而,SOAP確實允許某種程度的可演化性。你不能改變格式和其他一些東西,但你可以添加方法和參數(使用上面描述的一些小技巧)。正如你所說,這將違反SOAP規則,但這有什麼關係?有用。 另外你說當有人對SOAP服務進行破壞性更改時,它就是遊戲結束。它也適用於RESTful服務。如果您對媒體類型進行了破壞性更改,並且客戶端無法找到鏈接,那麼它也期望它的功能。 –
Re:向SOAP接口添加方法(「技巧」):是的,它可以工作,但它運行起來是因爲運氣而不是設計。它本質上是一種不受支持的技術。藉助REST,您的體系結構可以發展,因爲進化是REST的核心,而不是像SOAP那樣在基本級別禁止。回覆:破壞性更改 - 兩個帳戶都正確。這不是任何程序化客戶可以神奇處理的事情。 –