RESTful學習筆記(一)

Web發展

一、API

程序硬件接口(Application Programming Interface),是預先定義好的邏輯函數,軟件系統不同組成部分銜接的約定,直接調用函數,無序訪問代碼細節,分為SDK和Web應用接口兩類

SDK:B程序部分功能直接打包給A程序,A程序可直接使用,如java jar包

web應用接口:B程序對外提供訪問路徑(入口),A程序按照約定好的訪問方式訪問,如具有http協議請求的訪問

例子:快遞單號查詢(底層發送請求,根據API提供的訪問路徑)->對應到從入庫到簽收的流水記錄信息(response一般是Json信息)

二、Web發展階段

靜態內容:html靜態文檔組成,用于研究

CGI階段:增加了編程API,提供動態變化內容

腳本語言階段:網站內容的興起,把相關的圖片文件按照一些規則組合在一起,如PHP等服務器端

瘦客戶端階段:MVC,前后端分離,前端只做展示,后端做數據處理

富客戶端階段:外表美觀JS技術,不僅僅是簡單的頁面拼接,如古早的easyUI,extjsUI等后端管理,以及現在的bootstrapUI、layUI、elementUI等優雅的后端管理界面風格UI

移動Web應用階段(現在):因為現在手機不離手,所以出現大量面向移動設備(手機、平板)的應用開發技術,如基于HTML5的開發技術

三、開發模式發展

傳統開發模式:一個服務器,前后端嚴重耦合,后端人還得學JS和html,一旦后端換語言,前端也要重新開發

前后端分離模式(現在):兩個服務器(前端服務器【純靜態資源】,接口服務器【接收、處理、響應請求,全是數據操作,沒有涉及頁面】);瀏覽器發靜態頁面請求給前端服務器,前端ajax異步列表請求到接口服務器,接口服務器響應JSON格式數組數據給前端服務器,前端服務器將要響應回的單純的頁面(list.html),將數據通過JS/vue/jquery語言渲染到前端頁面,進行頁面數據組合。前端不管是什么形式,不管是小程序還是APP,只要能正確發送請求到接口,就都能取到對應數據

RESTful風格接口設計

存在原因:人們越來越依賴手機,客戶端可能是APP或者小程序,服務器端要提供一套統一的API接口,使得不管是APP還是小程序形式的客戶端都能基于相同的規則和協議就能調用API接口獲得預期數據

如同樣的路徑(添加員工):最后的子路徑A員工設定的是add,B員工設定的是xinzeng(英文不好)

優雅統一API方法:遵循rest規范,因為比較簡單易讀,滿足rest約束條件和原則的應用程序設計就是RESTful應用

一、約束規范

傳統模式

@Controller:容器管理

@RequestMapping(不管什么樣的請求方式都能請求)后面跟上要訪問的路徑(見名知意)

rest風格

1、路徑:由當前接口操作資源(rstful眼中一切都是資源,每個資源有唯一的定位符URI【圖片、網頁、路徑都是資源,對應URI就是請求的路徑】);資源不只有一個(如員工有很多個員工,,所以資源的名稱采用復數如employees),@RequestMapping("/employees"),具體是哪個員工由傳入的參數決定

2、請求方式(不同請求方式對應不同的操作請求):

GET---查詢(從服務器取資源);POST---在服務器新建一個資源;PUT---更新資源(更新整個對象);PATCH---更新資源(更新個別屬性);DELETE---刪除資源

傳統路徑見名知意=restful路徑+請求方式(POST對應add添加)

例:GET/zoos:列出所有動物園;GET/zoos/{id}:列出指定動物園信息;

3、請求參數---由需求決定

4、請求響應(數據返回的格式)---一般是json格式

二、拓展

HTTP響應碼

200---響應成功;400---請求參數出錯;401/403---用戶不能訪問(401是沒權限,403是有權限但被禁止);404---請求針對的是不存在的記錄;500---服務器發生錯誤,用戶無法判斷請求是否成功

資源表現形式

accept:客戶端期望返回的數據類型(對服務器端返回的數據類型作限制)

content-type:說明帶過去和響應回來的數據都是什么格式

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902989.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902989.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902989.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SD2351核心板:重構AI視覺產業價值鏈的“超級節點”

在AI視覺技術狂飆突進的當下,一個吊詭的現象正在浮現:一方面,學術界不斷刷新著ImageNet等基準測試的精度紀錄;另一方面,產業界卻深陷“算法有、場景無,技術強、落地難”的怪圈。明遠智睿SD2351核心板的問世…

【數據結構】紅黑樹原理及實現

目錄 一. 紅黑樹的概念1. 紅黑樹的規則思考 2. 紅黑樹的效率 二.紅黑樹的實現1. 紅黑樹的結構2. 紅黑樹的插入3. 紅黑樹的平衡調整情況1:變色情況2:單旋變色情況3:雙旋變色 4. 紅黑樹插入及平衡調整代碼實現5.紅黑樹的驗證 一. 紅黑樹的概念 …

時間復雜度分析

復雜度分析的必要性: 當給我們一段代碼時,我們是以什么準則來判斷代碼效率的高低呢?每一段代碼都會消耗一段時間,或占據一段數據空間,那么自然是在實現相同功能的情況下,代碼所耗時間最少,所占…

L1-1、Prompt 是什么?為什么它能“控制 AI”?

*Prompt 入門 L1-1 想象一下,你只需輸入一句話,AI 就能自動為你寫一篇文案、生成一份報告、甚至規劃你的創業計劃。這種“對話即編程”的背后魔法,就是 Prompt 的力量。 🔍 一、Prompt 的定義與由來 Prompt(提示詞&am…

微信小程序文章管理系統開發實現

概述 在內容為王的互聯網時代,高效的文章管理系統成為各類平臺的剛需。幽絡源平臺今日分享一款基于SSM框架開發的微信小程序文章管理系統完整解決方案,該系統實現了多角色內容管理、智能分類、互動交流等功能。 主要內容 一、用戶端功能模塊 ??多角…

【Python-Day 5】Python 格式化輸出實戰:%、format()、f-string 對比與最佳實踐

Langchain系列文章目錄 01-玩轉LangChain:從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊:四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain:從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

R7周:糖尿病預測模型優化探索

🍨 本文為🔗365天深度學習訓練營中的學習記錄博客 🍖 原作者:K同學啊 一、數據預處理 1.設置GPU import torch.nn.functional as F import torch.nn as nn import torch, torchvisiondevice torch.device("cuda"…

使用Tortoise-ORM和FastAPI構建評論系統

title: 使用Tortoise-ORM和FastAPI構建評論系統 date: 2025/04/25 21:37:36 updated: 2025/04/25 21:37:36 author: cmdragon excerpt: 在models.py中定義了Comment模型,包含id、content、created_at、updated_at字段,并與User和Article模型建立外鍵關系。schemas.py中定義了…

【VS Code】如何使用SSH打開遠程服務器Docker上的項目或文件夾

要在VS Code中使用SSH打開遠程服務器Docker上的項目或文件夾,您需要結合使用VS Code的Remote - SSH擴展和Docker的遠程訪問功能。以下是詳細步驟: 安裝VS Code Remote - SSH擴展 打開VS Code。點擊左側活動欄的擴展圖標(或使用快捷鍵CtrlShif…

NHANES指標推薦:PLP

文章題目:Association of pyridoxal 5-phosphate (PLP) with lipid profiles: a population-based cohort study DOI:10.3389/fnut.2025.1545301 中文標題:5-磷酸吡哆醛 (PLP) 與血脂譜的關系:一項基于人群的隊列研究 發表雜志&am…

MySQL 詳解之備份與恢復策略:數據安全的最后一道防線

在任何信息系統中,數據都是最寶貴的資產。數據的丟失可能源于多種原因:硬件故障、人為誤操作、軟件 Bug、惡意攻擊,甚至自然災害。一旦發生數據丟失,如果沒有有效的備份和恢復機制,后果可能是災難性的,可能導致業務中斷、經濟損失甚至法律責任。 數據庫備份與恢復,正是…

2026《數據結構》考研復習筆記五(棧、隊列)

棧、隊列 一、棧1.卡特蘭數2.不合法的出棧序列 二、隊列1.循環隊列2.輸入輸出受限隊列(四個數1234) 三、算法1.棧在括號匹配中的應用2.中綴表達式求值(通過轉化為后綴表達式再后綴表達式求值)3.中綴表達式轉化為后綴表達式4.后綴表…

深入解析微軟MarkitDown:原理、應用與二次開發指南

一、項目背景與技術定位 微軟開源的MarkitDown并非簡單的又一個Markdown解析器,而是針對現代文檔處理需求設計的工具鏈核心組件。該項目誕生于微軟內部大規模文檔系統的開發實踐,旨在解決以下技術痛點: 大規模文檔處理性能:能夠高…

pyinstaller打包paddleocr發生錯誤解決

python環境是3.9,github paddleocr v2.10.0。 一個非常簡單的案例如下,打包時發生錯誤。 import requests from paddleocr import PaddleOCR if __name__ "__main__":paddleocr_ocr PaddleOCR(use_angle_clsTrue, langch,det_model_dirmode…

算法之回溯法

回溯法 回溯法定義與概念核心思想回溯法的一般框架偽代碼表示C語言實現框架 回溯法的優化技巧剪枝策略實現剪枝的C語言示例記憶化搜索 案例分析N皇后問題子集和問題全排列問題尋路問題 回溯法的可視化理解決策樹狀態空間樹回溯過程 回溯法與其他算法的比較回溯法與動態規劃的區…

命令行指引的嘗試

效果 步驟 首先初始化一個空的項目,然后安裝一些依賴 npm init -y npm install inquirer execa chalk ora至于這些依賴是干嘛的,如下圖所示: 然后再 package.json 中補充一個 bin 然后再根目錄下新建一個 index.js , 其中的內容如下 #!/…

探秘LLM推理模型:hidden states中藏著的self verification的“鑰匙”

推理模型在數學和邏輯推理等任務中表現出色,但常出現過度推理的情況。本文研究發現,推理模型的隱藏狀態編碼了答案正確性信息,利用這一信息可提升推理效率。想知道具體如何實現嗎?快來一起來了解吧! 論文標題 Reasoni…

流量抓取工具(wireshark)

協議 TCP/IP協議簇 網絡接口層(沒有特定的協議)PPPOE 物理層數據鏈路層 網絡層: IP(v4/v6) ARP(地址解析協議) RARP ICMP(Internet控制報文協議) IGMP傳輸層:TCP(傳輸控制協議)UDP(用戶數據報協議)應用層…

.NET倉儲層在 using 塊中創建 SqlSugarClient 的風險

如題&#xff0c;先看代碼示例 using 塊的使用 public ISugarQueryable<T> GetSet(Expression<Func<T, bool>> whereExpression null) {using (SqlSugarClient dbClient SqlSugarInstance.GetInstance()){var query dbClient.Queryable<T>();if (w…

C語言----函數棧幀講解

目錄 1.函數棧幀是什么? 2. 理解函數棧幀能解決什么問題 3、函數棧幀的創建和銷毀具體過程 3.1 什么是棧 3.2 認識相關寄存器和匯編指令 3.3函數棧幀的創建和銷毀 3.3.1 預備知識 3.3.2 函數的調用堆棧 3.3.3 準備環境 3.3.4 轉到反匯編 3.3.5 函數棧幀的創建 3.3…