REST 指的是一組架構限制條件和原則。是一種架構方式,它描述了一個架構樣式, 這個原則誕生于2000年,是Roy Fielding 的博士論文第一次提出的,這哥們牛閃閃的,是 HTTP(1.0/1.1) 規範的主要編寫者之一,也是Apache伺服器軟體的作者之一,Apache基金會的第一任主席。
而RESTful是指按照REST規定的規則應用程式或者設計風格。
REST的規則概括起來有以下五個方面:
什麼是資源?在web應用中,什麼都是資源(或者抽象成資源)。資源可以是一個實體,也可以是一個過程,或者也可以是一個版本。比如,商品是資源,庫存是資源,價格是資源等等。
REST沒有“服務”概念,那是SOA的事情。
每一個資源一個URL,而且是唯一的URL,比如我們使用http://www.haodaquan.com/v0/product 這個URL辨別商品資源。
操作(調用)資源使用HTTP中的标準方法,比如常見的GET(擷取資源),POST(存儲資源),PUT(重置資源),PATCH(局部更新資源)、DELET(删除資源),也可能會有HEADER和OPTIONS方法。
這裡是指調用資源後傳回的資料格式,一般以JSON和XML居多,特别json格式可以直接被js使用,爽的很,經常被使用。
REST架構是不存儲調用者的狀态的。換句話說,比如登陸才能調用資源,你可别指望登陸這個狀态讓REST服務幫你存儲。換句話說,業務層的活,REST不幹。
遵守REST規則,可以讓架構變得輕便,簡單,安全性和可靠性高,更重要的是擴充性好。當然,利用應用程式的多層架構可是實作更高的重用性、安全性和擴充性。
還有,REST架構方式不”挑食“,好多語言都可以實作。 Java、Perl、Ruby、Python、PHP、GO等等都是他的菜。
當然,REST隻是一個規範,不是法律,沒有強制性,實際項目中,隻能靠組織規定、上司力量和程式員的自覺了。
原文出處:Java架構師之路
轉載請與作者聯系,同時請務必标明文章原始出處和原文連結及本聲明。