鍵.png)
如何獲取 Seeed 開放平臺(tái) API Key 密鑰(分步指南)
2..NET8.0SDK
3.MicrosoftSQLServerExpress
REST或表示性狀態(tài)轉(zhuǎn)移是一種指導(dǎo)RESTful APIs開發(fā)的體系結(jié)構(gòu)風(fēng)格。
它在網(wǎng)絡(luò)上的計(jì)算機(jī)系統(tǒng)之間建立了標(biāo)準(zhǔn)化的通信,促進(jìn)了無縫交互。REST在客戶端-服務(wù)器模型上運(yùn)行,允許兩個(gè)應(yīng)用程序獨(dú)立發(fā)展而不相互依賴
REST的關(guān)鍵屬性包括其無狀態(tài),其中請求所需的所有信息都是在通信過程中傳達(dá)的,沒有服務(wù)器端會(huì)話狀態(tài)。REST確保組件之間有統(tǒng)一的接口,通過類似目錄結(jié)構(gòu)的URI公開資源。
REST中的表示通常涉及傳輸JSON或XML來表達(dá)數(shù)據(jù)對象及其屬性。由于其簡單性,REST已經(jīng)超越了基于SOAP的接口設(shè)計(jì),對web開發(fā)產(chǎn)生了重大影響。
2.啟動(dòng)Web API項(xiàng)目
啟動(dòng)Visual Studio 2022并按照以下步驟創(chuàng)建新項(xiàng)目:
在下一個(gè)屏幕上:
目前,我們有一個(gè)啟動(dòng)項(xiàng)目,如下所示:
在Program.cs文件中,您將觀察到Swagger支持已自動(dòng)集成到我們的項(xiàng)目中。
有關(guān)Swagger的更多信息,請參閱ASP.NET核心Web API文檔以及Swagger/OpenAPI
您觀察到的結(jié)果值是由WeatherForecastController中的GET方法生成的。
3.合并模型
以下是在MovieModels文件夾中創(chuàng)建類的步驟:
Id字段是數(shù)據(jù)庫要求的主鍵字段。
實(shí)體框架核心
我們將使用我們的模型與Entity Framework Core**(EF Core)**一起使用數(shù)據(jù)庫。
EF Core是一個(gè)對象關(guān)系映射(ORM)框架,簡化了數(shù)據(jù)訪問代碼。模型類不依賴于EF Core。它們只是定義將存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)的屬性。
4.集成數(shù)據(jù)庫上下文
_database context_是協(xié)調(diào)數(shù)據(jù)模型實(shí)體框架功能的主要類。此類是從Microsoft派生而來的。EntityFrameworkCore。類。
上面的代碼建立了一個(gè)代表實(shí)體集的DbSet<Movie>屬性。在Entity Framework語言中,實(shí)體集通常與數(shù)據(jù)庫表對齊,實(shí)體對應(yīng)于該表中的單個(gè)行。
連接字符串的名稱是通過對DbContextOptions對象的方法調(diào)用提供給上下文的。在本地開發(fā)過程中,ASP.NET Core配置系統(tǒng)從appsettings.json文件中檢索連接字符串。
我們需要將連接字符串添加到appsettings.json中。我將在我的機(jī)器上使用本地SQL server實(shí)例,我們可以按如下方式定義連接字符串:
依賴注入
依賴注入是ASP.NET中的一個(gè)基本概念.NET Core,框架圍繞它構(gòu)建。在應(yīng)用程序啟動(dòng)期間,包括EF Core DB上下文在內(nèi)的服務(wù)都通過依賴注入進(jìn)行注冊。需要這些服務(wù)的組件通過構(gòu)造函數(shù)參數(shù)接收這些服務(wù)。
5.使用遷移建立數(shù)據(jù)庫**
遷移使我們能夠構(gòu)建一個(gè)鏡像數(shù)據(jù)模型的數(shù)據(jù)庫,并在數(shù)據(jù)模型發(fā)生修改時(shí)調(diào)整數(shù)據(jù)庫模式。
打開Tools->NuGet包管理器>包管理器控制臺(tái)(PMC),并在PMC中運(yùn)行以下命令:
添加遷移初始值
AddMigration命令生成用于建立初始數(shù)據(jù)庫模式的代碼,該模式源自MovieContext類中概述的模型。Initial參數(shù)是遷移名稱,可以使用任何名稱。
更新數(shù)據(jù)庫
Update Database命令運(yùn)行Migrations/{time stamp}_Initial.cs文件中的Up方法,該方法用于創(chuàng)建數(shù)據(jù)庫。
6.創(chuàng)建API控制器和方法
讓我們先添加控制器。右鍵單擊Controller文件夾,然后選擇Add->Controller。.,然后選擇API控制器-空,如下所示:
單擊Add,在下一個(gè)屏幕上為控制器命名。
MovieController創(chuàng)建如下:
MoviesController類繼承自ControllerBase。
接下來,我們將通過控制器的構(gòu)造函數(shù)注入上一節(jié)中提到的數(shù)據(jù)庫上下文。添加以下代碼:
GET方法
GetMovies方法檢索所有電影,而GetMovie(int id)方法返回具有指定id的電影作為輸入。兩者都用[HttpGet]屬性標(biāo)記,表示它們對HTTP GET請求的響應(yīng)。
這些方法實(shí)現(xiàn)了兩個(gè)不同的GET端點(diǎn):
獲取/api/電影
獲取/api/電影/{id}
https://localhost:{port}/api/電影
GetMovie方法的返回類型為ActionResult<T>。ASP。NET Core會(huì)自動(dòng)將對象序列化為JSON,并將JSON嵌入到響應(yīng)消息的正文中。如果沒有未處理的異常,則此返回類型的響應(yīng)代碼為200。任何未處理的異常都會(huì)轉(zhuǎn)換為5xx錯(cuò)誤。
路由和URL路徑
每個(gè)方法的URL路徑按以下方式組裝:
測試GetMovie方法
GoSQL Server對象資源管理器,右鍵單擊Movies表并選擇View Data:
將以下代碼添加到MoviesController:
PostMovie方法負(fù)責(zé)在數(shù)據(jù)庫中生成電影記錄。代碼片段表示一個(gè)HTTP**POST方法,如[HttpPost]屬性所示。此方法從HTTP**請求的正文中檢索電影記錄的值。
CreatedAtAction方法執(zhí)行以下操作:
測試電影后期方法
啟動(dòng)應(yīng)用程序,然后在Movies部分選擇POST方法。
單擊嘗試,然后在請求正文中輸入要添加的電影信息:
然后單擊Execute。
響應(yīng)狀態(tài)代碼為201(已創(chuàng)建),響應(yīng)中添加了位置標(biāo)頭,如下所示:
將以下代碼添加到MoviesController:
PutMovie方法旨在使用數(shù)據(jù)庫中提供的Id修改電影記錄。代碼片段表示一個(gè)HTTP**PUT方法,由[HttpPut]屬性標(biāo)記。此方法從HTTP請求的主體中提取電影記錄的值。在請求URL和正文中都提供Id是至關(guān)重要的,并且它們必須對齊。根據(jù)HTTP規(guī)范,PUT**請求要求客戶端傳輸完整的更新實(shí)體,而不僅僅是更改。
測試PutMovie方法
然后單擊Execute。
我們也可以在數(shù)據(jù)庫中看到更新的信息:
如果我們嘗試更新數(shù)據(jù)庫中不存在的記錄,我們會(huì)得到404 not Found錯(cuò)誤:
DELETE方法
將以下代碼添加到MoviesController:
DeleteMovie方法旨在從數(shù)據(jù)庫中刪除具有指定Id的電影記錄。代碼片段表示一個(gè)HTTP**DELETE方法,由[HttpDelete**]屬性表示。此方法預(yù)期URL中存在Id,以精確定位要?jiǎng)h除的電影記錄。
測試DeleteMovie方法
啟動(dòng)應(yīng)用程序,然后在Movies部分選擇DELETE方法。
單擊嘗試,并在Id字段中輸入要?jiǎng)h除的電影的Id:
然后單擊執(zhí)行。_
不需要為此操作提供請求體。響應(yīng)狀態(tài)為204 No Content,表示刪除操作執(zhí)行成功
我們也可以從數(shù)據(jù)庫中檢查記錄是否已刪除:
完整的源代碼可以在這里找到:
感謝您的閱讀!!
原文鏈接:https://medium.[com](http://m.dlbhg.com/provider/uid20241115192306ea69b0)/@chandrashekharsingh25/build-a-restful-web-api-with-net-8-44fc93b36618
如何獲取 Seeed 開放平臺(tái) API Key 密鑰(分步指南)
使用LoRA(低秩適應(yīng))微調(diào)大型語言模型的實(shí)用技巧
醫(yī)療機(jī)構(gòu)如何防范API漏洞威脅
使用API自動(dòng)化實(shí)驗(yàn)室流程 [附示例指南]
最適合小型企業(yè)的SEO API,專家解答
Grok 2 和 Grok 3 使用教程:教你如何獲得Grok3的訪問權(quán)限
AI大模型榜單TOP10排名與詳情解析
快速提醒:用電子郵件發(fā)送短信獲取航天信息電子發(fā)票接口
API接口安全性設(shè)計(jì),項(xiàng)目中該如何保證API接口安全?