場景
前端設備層出不窮,不同的前端設備與后端進行通信,RESTful API是目前比較成熟的一套互聯網應用程序的API設計理論
API的身份認證
API接口開發
01.傳統API的CRUD接口的開發,
restful風格CRUD接口
02.AI的開發模式通常包含了以下步驟:
數據清洗;模型訓練;參數調優;API上線。
驅動方式
交互驅動
行為驅動
網絡協議
URL
URL由三部分組成:資源類型、存放資源的主機域名、資源文件名。
也可認為由4部分組成:協議、主機、端口、路徑
HTTP協議
Request 請求端 請求報文
request line: get/post/put/delete URL + version
Header: 鍵值對 Host cookie user-agent accept-encoding
Body
Response 響應報文
Status-line
Header content-type
Body
其中 Status-line
1XX Informational(信息性狀態碼)接收的請求正在處理
2XX Success(成功狀態碼)請求正常處理完畢
3XX Redirection(重定向狀態碼)需要進行附加操作以完成請求
4XX Client Error(客戶端錯誤狀態碼) 服務器無法處理請求5XXServer Error(服務器錯誤狀態碼)服務器處理請求出錯
通信數據轉發程序:
除客戶端和服務器以外,還有一些用於通信數據轉發的應用程序,例如代理、網關和隧道。它們可以配合服務器工作
Spring 注解
@RestController :用於標注控制層組件(如struts中的action), @ResponseBody 和 @Controller 的合集
@ResponseBody
@RequestParam 即允許用戶不輸入變量時,使用默認值
@PathVariable : @PathVaribale 獲取url中的數據
@RequestBody 這個一般處理的是在ajax請求中聲明contentType:
“application/json; charset=utf-8”時候。也就是json數據或者xml
Content-Type: application/json;charset=utf-8
@RequestParam 這個一般就是在ajax里面沒有聲明contentType的時候,
為默認的 application/x-www-form-urlencode 格式時,用這個
enctype=application/x-www-form-urlencoded。 enctype指定了HTTP請求的Content-Type。
@RequestMapping
@GetMapping 組合注解, 是@RequestMapping(method = RequestMethod.GET)的縮寫
@PostMapping
Spring4.3中引入了{
@GetMapping @PostMapping
@PutMapping @PatchMapping
@DeleteMapping
即@GetMapping用於處理請求方法的GET類型,
@PostMapping用於處理請求方法的POST類型等。
Spring
Controller 如何接收以 GET 方式傳遞過來的參數
一、參數直接在路徑中
二、參數跟在 ? 號后面
1,獲取參數的基本方法 參數沒有傳遞的情況
2,使用 map 來接收參數
3,接收一個數組
使用對象來接收參數
如何接收通過 POST 方式傳遞過來的參數。
一、接收 Form 表單數據
1,獲取參數的基本方法 參數沒有傳遞的情況
2,使用 map 來接收參數
@RequestParam Map<String,Object> params
3,接收一個數組
@RequestParam("name")
4,使用對象來接收參數 以及使用對象接收時指定參數前綴
@ModelAttribute("u") User user
二、接收字符串文本數據
Text 文本,我們可以通過 HttpServletRequest 獲取輸入流從而讀取文本內容
HttpServletRequest request
三、接收 JSON 數據
以使用 @Requestbody 接收參數,將數據轉換 Map
@RequestBody User user
@RequestBody Map params
@RequestBody List<User> users
接口測試PostMan
1,raw方式使用的是純字符串的數du據上傳方式,所以在POST之前,
可能需要手工的把一些JSON格式的數回據轉換成字答符串的(加兩單引號)
2.Form-data的方式就是key-value的提交,數據其實是分割的.
模仿頁面中dao form 表單的格式,來填充要提交的數據的
參考:
SpringBoot - 獲取POST請求參數詳解(附樣例:表單數據、json、數組、對象) https://www.cnblogs.com/netcorner/p/13544443.html
Web API 設計 https://docs.microsoft.com/zh-cn/azure/architecture/best-practices/api-design