【C#】Asp.net 6 常用的WebApi 規(guī)范
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
摘要Web API 是一種在 Web 應(yīng)用程序之間交換數(shù)據(jù)的機(jī)制,它使得開發(fā)者可以輕松地在應(yīng)用程序之間共享數(shù)據(jù)和服務(wù)。而 Web API 規(guī)范則是指定 Web API 的開發(fā)方式和數(shù)據(jù)交換方式的標(biāo)準(zhǔn)化規(guī)范。常用的 Web API 規(guī)范包括面向過程的 RPC、面向 RESTful 的 Web API 和 GraphQL 等。 RPCRemote Procedure Call (RPC)是一種常用的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),用于在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行本地方法或函數(shù)。與傳統(tǒng)的本地方法調(diào)用不同,RPC允許客戶端在與遠(yuǎn)程服務(wù)器進(jìn)行通信時(shí)直接執(zhí)行遠(yuǎn)程方法,而不需要在本地進(jìn)行額外的編譯和安裝。 在RPC里,客戶端通常是把方法名和參數(shù)傳遞給服務(wù)器,然后服務(wù)器返回JSON或XML。
RESTRepresentational State Transfer (REST) 是一種現(xiàn)今廣泛使用的 Web API 設(shè)計(jì)風(fēng)格。REST 是指通過使用表述性狀態(tài)傳遞來管理 Web 應(yīng)用程序中的狀態(tài)。 REST(Representational State Transfer)的核心是資源,它是一個(gè)可以被標(biāo)識(shí)的實(shí)體,通常有一個(gè)名稱和地址。每個(gè)資源都可以被獨(dú)立地識(shí)別、描述和操作,而不必知道它所屬的系統(tǒng)或應(yīng)用程序。因此,資源是REST架構(gòu)的基礎(chǔ),是REST API設(shè)計(jì)和實(shí)現(xiàn)的核心概念。 REST API就是把數(shù)據(jù)以資源的形式暴露出來,并使用標(biāo)準(zhǔn)的HTTP方法來代表創(chuàng)建、讀取、更新和刪除資源等事務(wù)。
REST與RPC區(qū)別REST和RPC都是用于實(shí)現(xiàn)客戶端與服務(wù)器之間的通信的架構(gòu)模式。但是它們的關(guān)注點(diǎn)不同。REST是一種基于資源的架構(gòu)模式,強(qiáng)調(diào)在Web上通過URI定位資源,通過HTTP協(xié)議進(jìn)行資源的讀寫操作。而RPC是一種基于動(dòng)作的架構(gòu)模式,強(qiáng)調(diào)在客戶端和服務(wù)器之間傳遞請(qǐng)求和響應(yīng)的過程,包括請(qǐng)求參數(shù)、返回值、錯(cuò)誤信息等。簡(jiǎn)單來說,REST關(guān)注的是資源,而RPC關(guān)注的是請(qǐng)求和響應(yīng)。 GraphQLGraphQL 是一種現(xiàn)代化的 API 查詢語(yǔ)言,它于2014年由 Facebook 推出。GraphQL 是一種用于創(chuàng)建 RESTful 服務(wù)的查詢語(yǔ)言,它可以通過請(qǐng)求一個(gè) API 而獲得需要的所有數(shù)據(jù),而不是像 RESTful API 一樣請(qǐng)求單個(gè)資源。 GraphQL為客戶端提供了更大的控制權(quán),使得客戶端能夠明確指定需要獲取的數(shù)據(jù)結(jié)構(gòu)。而服務(wù)器則會(huì)根據(jù)客戶端的請(qǐng)求,返回完全匹配的數(shù)據(jù)結(jié)構(gòu)。這種靈活的方式能夠更有效地減少數(shù)據(jù)冗余,并且能夠幫助開發(fā)者更快速地構(gòu)建高質(zhì)量的應(yīng)用程序。 與REST和RPC不同,GraphQL API只需要一個(gè)端點(diǎn)來提供數(shù)據(jù)。它也不需要使用不同的HTTP動(dòng)詞,只需要使用POST方法。在JSON的body中,你需要明確指定要執(zhí)行查詢還是修改操作。 什么時(shí)候應(yīng)該用哪種Web API呢?
HTTP協(xié)議規(guī)范常見狀態(tài)碼及含義200 - 請(qǐng)求成功,已經(jīng)正常處理完畢 201 - 創(chuàng)建成功 301 - 請(qǐng)求永久重定向,轉(zhuǎn)移到其它URL 302 - 請(qǐng)求臨時(shí)重定向 304 - 請(qǐng)求被重定向到客戶端本地緩存 400 - 客戶端請(qǐng)求存在語(yǔ)法錯(cuò)誤 401 - 客戶端請(qǐng)求沒有經(jīng)過授權(quán) 403 - 客戶端的請(qǐng)求被服務(wù)器拒絕,一般為客戶端沒有訪問權(quán)限 404 - 資源未找到,客戶端請(qǐng)求的URL在服務(wù)端不存在 500 - 服務(wù)端出現(xiàn)異常 MIME類型對(duì)應(yīng)列表
GET和POST的區(qū)別
RESTful URL請(qǐng)求格式與傳統(tǒng)請(qǐng)求格式比較如下
該文章在 2024/4/12 22:57:51 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |