欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【C#】Asp.net 6 常用的WebApi 規范

admin
2024年4月11日 9:14 本文熱度 752

摘要


Web API 是一種在 Web 應用程序之間交換數據的機制,它使得開發者可以輕松地在應用程序之間共享數據和服務。而 Web API 規范則是指定 Web API 的開發方式和數據交換方式的標準化規范。常用的 Web API 規范包括面向過程的 RPC、面向 RESTful 的 Web API 和 GraphQL 等。

RPC

Remote Procedure Call (RPC)是一種常用的計算機網絡技術,用于在遠程計算機上執行本地方法或函數。與傳統的本地方法調用不同,RPC允許客戶端在與遠程服務器進行通信時直接執行遠程方法,而不需要在本地進行額外的編譯和安裝。

在RPC里,客戶端通常是把方法名和參數傳遞給服務器,然后服務器返回JSON或XML。

  • 端點要包含被執行操作的名字

  • 使用合理的HTTP動詞,GET用于讀取,POST用于其它類型。

REST

Representational State Transfer (REST) 是一種現今廣泛使用的 Web API 設計風格。REST 是指通過使用表述性狀態傳遞來管理 Web 應用程序中的狀態。

REST(Representational State Transfer)的核心是資源,它是一個可以被標識的實體,通常有一個名稱和地址。每個資源都可以被獨立地識別、描述和操作,而不必知道它所屬的系統或應用程序。因此,資源是REST架構的基礎,是REST API設計和實現的核心概念。

REST API就是把數據以資源的形式暴露出來,并使用標準的HTTP方法來代表創建、讀取、更新和刪除資源等事務。

  • 資源都是URL的一部分,例如/persons

  • 針對每個資源通常都會有兩個URL被實現:“/persons”表示資源的集合,“/person/321”表示特定的一個資源

  • 在資源里,使用名詞而不是動詞,例如 /getUserInfo/123 這就不對了,應該是 /users/123

  • HTTP方法表明了要執行的動作,不同的HTTP方法作用于同一個URL上可實現不同的功能:

  • 創建 -- POST

  • 讀取 -- GET

  • 整體更新 -- PUT

  • 局部更新 -- PATCH

  • 刪除 -- DELETE

  • 服務器會以HTTP狀態碼來響應請求,狀態碼分為2xx、3xx、4xx和5xx四類,分別表示成功、重定向、客戶端錯誤和服務器端錯誤。其中2xx表示成功,3xx表示重定向,4xx表示客戶端錯誤,5xx表示服務器端錯誤。

REST與RPC區別

REST和RPC都是用于實現客戶端與服務器之間的通信的架構模式。但是它們的關注點不同。REST是一種基于資源的架構模式,強調在Web上通過URI定位資源,通過HTTP協議進行資源的讀寫操作。而RPC是一種基于動作的架構模式,強調在客戶端和服務器之間傳遞請求和響應的過程,包括請求參數、返回值、錯誤信息等。簡單來說,REST關注的是資源,而RPC關注的是請求和響應。

GraphQL

GraphQL 是一種現代化的 API 查詢語言,它于2014年由 Facebook 推出。GraphQL 是一種用于創建 RESTful 服務的查詢語言,它可以通過請求一個 API 而獲得需要的所有數據,而不是像 RESTful API 一樣請求單個資源。

GraphQL為客戶端提供了更大的控制權,使得客戶端能夠明確指定需要獲取的數據結構。而服務器則會根據客戶端的請求,返回完全匹配的數據結構。這種靈活的方式能夠更有效地減少數據冗余,并且能夠幫助開發者更快速地構建高質量的應用程序。

與REST和RPC不同,GraphQL API只需要一個端點來提供數據。它也不需要使用不同的HTTP動詞,只需要使用POST方法。在JSON的body中,你需要明確指定要執行查詢還是修改操作。

什么時候應該用哪種Web API呢?

  • 針對CRUD類的API,使用REST

  • 針對暴露很多動作的API,使用RPC

  • 當你需要查詢的靈活性以及維護的連續性時,使用GraphQL


HTTP協議規范

常見狀態碼及含義

200 - 請求成功,已經正常處理完畢

201 - 創建成功

301 - 請求永久重定向,轉移到其它URL

302 - 請求臨時重定向

304 - 請求被重定向到客戶端本地緩存

400 - 客戶端請求存在語法錯誤

401 - 客戶端請求沒有經過授權

403 - 客戶端的請求被服務器拒絕,一般為客戶端沒有訪問權限

404 - 資源未找到,客戶端請求的URL在服務端不存在

500 - 服務端出現異常

MIME類型對應列表



TypeMeaning
application/postscriptPostScript file
application/vnd.lotus-notesLotus Notes file
application/vnd.ms-excelExcel spreadsheet
application/vnd.ms-powerpointPowerPoint presentation
application/x-gzipGzip archive
application/x-java-archiveJAR file
application/x-java-serialized-objectSerialized Java object
application/x-java-vmJava bytecode (.class) file
application/zipZip archive
audio/basicSound file in .au or .snd format
audio/midiMIDI sound file
audio/x-aiffAIFF sound file
audio/x-wavMicrosoft Windows sound file
image/gifGIF image
image/jpegJPEG image
image/pngPNG image
image/tiffTIFF image
image/x-xbitmapX Windows bitmap image
text/cssHTML cascading style sheet
text/htmlHTML document
text/plainPlain text
text/xmlXML
video/mpegMPEG video clip
video/quicktimeQuickTime video clip
application/mswordMicrosoft Word document
application/octet-streamUnrecognized or binary data
application/pdfAcrobat (.pdf) file

GET和POST的區別

  • GET在瀏覽器回退時是無害的,而POST會再次提交請求。

  • GET產生的URL地址可以被Bookmark,而POST不可以。

  • GET請求會被瀏覽器主動cache,而POST不會,除非手動設置。

  • GET請求只能進行url編碼,而POST支持多種編碼方式。

  • GET請求參數會被完整保留在瀏覽器歷史記錄里,而POST中的參數不會被保留。

  • GET請求在URL中傳送的參數是有長度限制的,而POST則沒有。對參數的數據類型GET只接受ASCII字符,而POST即可是字符也可是字節。

  • GET比POST更不安全,因為參數直接暴露在URL上,所以不能用來傳遞敏感信息。

  • GET參數通過URL傳遞,POST放在Request body中。

RESTful URL請求格式與傳統請求格式比較如下


RESTFul請求格式描述
http:/localhost/user/1  GET根據用戶id查詢用戶數據
http:/localhost/user     POST新增用戶
http:/localhost/user     PUT修改用戶信息
http:/localhost/user     DELETE刪除用戶信息
http:/localhost/user     PATCH更新某些屬性



該文章在 2024/4/12 22:57:51 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved