REST是一種萬維網軟件架構風格,目的是便于不同軟件/程序在網絡(例如互聯網)中互相傳遞信息。目前在三種主流的Web服務實現方案中,因為REST模式與復雜的SOAP和XML-RPC相比更加簡潔,越來越多的web服務開始采用REST風格設計和實現。
有狀態和無狀態組件之間的區別簡單對象訪問協議(SOAP)中的網絡組件被稱為模塊,它是交換數據的一種協議規范,使用在計算機網絡Web服務(web service)中,交換帶結構信息,SOAP能夠使開發人員查找過程并綁定代碼執行。 REST使系統組件能夠表示一個要求訪問的資源,其實現細節是真正的黑匣子。使用SOAP,不能假設遠程組件是無狀態的。而REST則不同,REST可以假設所有調用都是無狀態的。
REST的這一屬性使得其在云計算應用中非常有價值,因為它支持在無法通過縮放以適應負載變化的意外故障的情況下自由部署無狀態組件。其背后的主要原因是它能夠將任何請求重定向到組件的應用實例中。SOAP也可以這樣構建,但不是強制性的。
這是REST成為Web服務首選協議的主要原因之一,但RESTful模式也適用于云服務。將API綁定到服務的過程是控制URL解碼過程的技術,當應用程序通過URL熟悉組件或為服務器,并且原始組件實例失敗時,可以通過更改與該URL相關聯的IP地址將請求重定向到新的實例中。在這種情況下,不需要目錄管理,只需要簡單的算法就可以將URL指向負載均衡器來分配工作。
云計算和微服務的應用需求由于微服務和云計算正在將RESTful API當做是通往未來的設計,開發人員和架構師必須解決其應用程序中的狀態控制一致性,通過更松散的組件耦合來管理安全性,并創建有效的服務目錄。
管理REST的狀態可以通過兩種方式完成:將狀態傳遞給RESTful呼叫服務,并使狀態由后端數據庫維護。如果最終目標是獲得符合REST的應用程序,如基于SOAP的應用程序,那么采取一致性的方式至關重要。除非無法訪問后端狀態數據庫,否則后端狀態管理是這種應用程序的最佳選擇。如果客戶端實例失敗,客戶端狀態控制可能會導致整個組織出現問題。
安全措施REST的實現存在大量的安全隱患,大多數REST用戶通常認為任何應用程序的REST組件來自VPN或開放的Internet。為了確保REST的安全性,組織必須建立可部署組件的專用RFC 1918地址空間,在某些情況下,某些應用程序可能需要組件之間更廣泛的集成,組織必須采用包括HTTPS的安全連接。
雖然REST有很多目錄服務,如ProgrammableWeb,但這些服務主要關注公開的API。RESTful API正處于互聯網行業的辯證階段,實際上大多數公司都需要一個專用的API目錄來訪問RESTful API。 否則,將導致公司數據和合規性要求受損。
原文鏈接:https://www.cioreview.com/news/future-of-restful-api-for-developers-nid-25059-cid-111.html