天天看點

RESTful

前後端分離概念、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 标簽的屬性

RESTful