前後端分離概念、restful風格等
1: api 概念
api 是應用程式接口,比如某個伺服器對外暴露出具有某個功能的<code>請求url</code>,其他軟體通路這個請求,得到想要的結果,這裡面的<code>請求url</code>就是 api ,我們項目也是在開發這些接口。
另外一種方式是,某軟體把某些功能打包成jar包(元件),其他軟體引入這些jar包(通常說的 sdk就是這些放着你想要的軟體功能的軟體包),通過調用api進而得到想要的功能。
2: 前後端分離模式 概念, 優缺點
概念
前後端分離模式是一種開發模式,也是web應用的一種架構模式。指的是前後端通過約定好資料互動接口來進行開發。
後端需要測試請求有沒有問題的話,通過 postman 等接口測試工具即可
優缺點
責任清晰,前端不需要過多關注後端,後端不需要過多關注前端
前後端開發人員通過 api 文檔就能進行資料交流
解耦,資料怎麼展示,全部交給前端來處理,後端隻負責提供資料。而前後端不分離的話,後端傳給前端的model,通常是通過hidden類型的input來處理,或者是直接用模闆技術生成,資料和展現并未分離。
3:restful風格相關概念, 資源, 狀态, 請求方式, 響應值
概念:代表一種軟體架構風格,我們前後端日常遵循的一套接口規範
資源:根據公司約定,一般是跟表名一緻/實體類的複數形式,例如:employees
請求方式:通過統一的接口來對資源執行各種操作,如:增 post 删 delete 改 put 查 get
響應值:
200 正常,伺服器成功傳回使用者請求資料(get)
400 使用者發出的請求有錯誤,伺服器沒有進行 post 或 put 資料的操作
401 使用者沒有權限(token、使用者名、密碼錯誤)
403 表示使用者得到授權(和401相反),但是通路是被禁止的
404 使用者發出的請求不存在(找不到頁面)
springboot 中,如果啟動類放錯位置,也會導緻404,原因在于啟動類@springbootapplication裡面的@componentscan注解,它是從啟動類所在包開始,掃描目前包及其子級包下的所有檔案。
500 伺服器内部錯誤
4:restful風格接口設計
請求路徑 (确定接口操作資源)
請求方式
增 post
删 delete
改 put
查 get
請求參數 (根據需求)
響應值 (根據需求,傳回 json 格式)
5:員工 crud 接口設計【必須掌握】
參考項目: restful-demo
6:參數路徑操作方式
可以使用參數路徑來擷取唯一辨別( 如 "/employees/{id}"),這樣springmvc就能解析了,避免ambiguous
接口擷取路徑參數,是通過@pathvariable注解
2. 形參和路徑參數不一緻,需要為@pathvariable設定值,如下
7:頁面發起接口請求
首先,在頭标簽引入 jquery.js,然後編碼
get 和 post 可以用 $.get(...) $.post(...) , 但 put 和 delete 需要用 $.ajax({...}) $.get(...) $.post(...) 的原理其實也是基于 $.ajax({...})
8:restful風格接口簡化開發
類上面貼注解 @requestmapping("/employees") , 則代表每個映射路徑前都已經加上了 "/employees"
@requestmapping(value = "/employees/{id}", method = requestmethod.get)
可以簡化為 @getmapping("/employees/{id}"),其他請求方式同理
類上面貼注解 @restcontroller,其實是 @controller + @responsebody
9:@requestmapping 标簽的屬性