1. Rest是啥
Rest是一種軟體架構設計的風格,注意它并不是一種強制約定。
舉個例子,我們在變量命名是,可以采用駝峰命名法userName,也可以采用全部首字母大寫UserName,也可以采用下劃線分割user_name,也可以采用漢語拼音簡寫風格yhm(使用者名首字母)。
這些不同的寫法,其實本身并沒有優劣之分,但是遵循了不同的設計風格。
OK,那麼Rest是啥風格呢,Rest風格及通過URL位址+HTTP動詞來操作資源進行增删改查等操作。
URL位址不用說了,此處可以了解為web服務的位址。
HTTP動詞就是即為常見的GET,POST,PUT,DELETE。
2. Restful是啥
Rest是一種風格,Restful是指遵循Rest風格的web服務,即web程式提供的遵循Rest風格的API接口。
舉個簡單例子,還是以之前部落格增删改查為例,設計為Resutful即為:
http://127.0.0.1/myblog/blog/1GET 查詢部落格(id=1)資訊
http://127.0.0.1/myblog/blogGET 查詢部落格清單資訊
POST 新增部落格
PUT 修改部落格(id=1)資訊
DELETE 删除部落格(id=1)
3. Restful的用途(意義)
那麼Restful這種設計有啥用捏,注意其實它就是一種規範,雖然不強制,但用這種規範的人很多啊,而且很多大廠也在用。
說白了各家公司、各家公司各個開發人員、都有自己的習慣,當然自家開發程式,其實怎麼弄都無所謂了,隻要符合一種規範團隊内共享就行。
但是當你要提供API接口給第三方時,或者與第三方一起開發一個項目時,如果沒有一個規範那溝通成本可太高了。
是以有一個大家共同知道的,都可以去遵守的規範,這個意義就出來了。
而這,就是Restful的意義!
為了避免麻煩,還是建議大家在開發項目的web接口的時候,盡量的遵守Restful規範。
4. 補充說明
還有一點是我也看了一些大牛的部落格和書籍,其實很多人在做項目的時候也不是完全遵循Rest風格的,即便是鼎鼎大名的微信公衆号等産品的開放接口,很多也沒有完全遵循Rest風格。主要是完全遵循的話,有時候确實比較繁瑣。是以後續我隻能說盡量遵循吧,你懂得。
5. 計劃
Spring Restful這一篇遵循之前的慣例,先用xml實作一個Spring Restful執行個體,因為實際上Spring Restful應用也是一個SpringMVC,是以将xml配置改為注解配置的過程與SpringMVC部分介紹的幾乎一緻,是以此處不再單獨講解注解配置Spring Restful的執行個體了。
因為Restful經常會用于第三方接口調用,我們會示範在用戶端使用RestTemplate通路Restful接口。
最後,我們會将之前的部落格項目改為前後端分離的,前端采用Bootstrap+jQuery,後端使用Spring Restful的項目,兄弟們會驚喜的發現,不用JSP,是如此的爽快啊。
PS:前端架構選擇jQuery是因為jQuery大家應該都會吧,還是本着盡可能大家都能成為閱聽人的原則,而且前端這塊我本身學的也不深入。目前工作中用的最多的是vue,後續如果有機會可以跟大家交流下vue的使用。