
如何获取 Seeed 开放平台 API Key 密钥(分步指南)
本文涵盖的章节包括:
1.VisualStudio2022
2..NET8.0SDK
3.MicrosoftSQLServerExpress
REST或表示性状态转移是一种指导RESTful APIs开发的体系结构风格。
它在网络上的计算机系统之间建立了标准化的通信,促进了无缝交互。REST在客户端-服务器模型上运行,允许两个应用程序独立发展而不相互依赖
REST的关键属性包括其无状态,其中请求所需的所有信息都是在通信过程中传达的,没有服务器端会话状态。REST确保组件之间有统一的接口,通过类似目录结构的URI公开资源。
REST中的表示通常涉及传输JSON或XML来表达数据对象及其属性。由于其简单性,REST已经超越了基于SOAP的接口设计,对web开发产生了重大影响。
2.启动Web API项目
启动Visual Studio 2022并按照以下步骤创建新项目:
在下一个屏幕上:
目前,我们有一个启动项目,如下所示:
在Program.cs文件中,您将观察到Swagger支持已自动集成到我们的项目中。
有关Swagger的更多信息,请参阅ASP.NET核心Web API文档以及Swagger/OpenAPI
您观察到的结果值是由WeatherForecastController中的GET方法生成的。
3.合并模型
以下是在MovieModels文件夹中创建类的步骤:
Id字段是数据库要求的主键字段。
实体框架核心
我们将使用我们的模型与Entity Framework Core**(EF Core)**一起使用数据库。
EF Core是一个对象关系映射(ORM)框架,简化了数据访问代码。模型类不依赖于EF Core。它们只是定义将存储在数据库中的数据的属性。
4.集成数据库上下文
_database context_是协调数据模型实体框架功能的主要类。此类是从Microsoft派生而来的。EntityFrameworkCore。类。
上面的代码建立了一个代表实体集的DbSet<Movie>属性。在Entity Framework语言中,实体集通常与数据库表对齐,实体对应于该表中的单个行。
连接字符串的名称是通过对DbContextOptions对象的方法调用提供给上下文的。在本地开发过程中,ASP.NET Core配置系统从appsettings.json文件中检索连接字符串。
我们需要将连接字符串添加到appsettings.json中。我将在我的机器上使用本地SQL server实例,我们可以按如下方式定义连接字符串:
依赖注入
依赖注入是ASP.NET中的一个基本概念.NET Core,框架围绕它构建。在应用程序启动期间,包括EF Core DB上下文在内的服务都通过依赖注入进行注册。需要这些服务的组件通过构造函数参数接收这些服务。
5.使用迁移建立数据库**
迁移使我们能够构建一个镜像数据模型的数据库,并在数据模型发生修改时调整数据库模式。
打开Tools->NuGet包管理器>包管理器控制台(PMC),并在PMC中运行以下命令:
添加迁移初始值
AddMigration命令生成用于建立初始数据库模式的代码,该模式源自MovieContext类中概述的模型。Initial参数是迁移名称,可以使用任何名称。
更新数据库
Update Database命令运行Migrations/{time stamp}_Initial.cs文件中的Up方法,该方法用于创建数据库。
6.创建API控制器和方法
让我们先添加控制器。右键单击Controller文件夹,然后选择Add->Controller。.,然后选择API控制器-空,如下所示:
单击Add,在下一个屏幕上为控制器命名。
MovieController创建如下:
MoviesController类继承自ControllerBase。
接下来,我们将通过控制器的构造函数注入上一节中提到的数据库上下文。添加以下代码:
GET方法
GetMovies方法检索所有电影,而GetMovie(int id)方法返回具有指定id的电影作为输入。两者都用[HttpGet]属性标记,表示它们对HTTP GET请求的响应。
这些方法实现了两个不同的GET端点:
获取/api/电影
获取/api/电影/{id}
https://localhost:{port}/api/电影
GetMovie方法的返回类型为ActionResult<T>。ASP。NET Core会自动将对象序列化为JSON,并将JSON嵌入到响应消息的正文中。如果没有未处理的异常,则此返回类型的响应代码为200。任何未处理的异常都会转换为5xx错误。
路由和URL路径
每个方法的URL路径按以下方式组装:
测试GetMovie方法
GoSQL Server对象资源管理器,右键单击Movies表并选择View Data:
将以下代码添加到MoviesController:
PostMovie方法负责在数据库中生成电影记录。代码片段表示一个HTTP**POST方法,如[HttpPost]属性所示。此方法从HTTP**请求的正文中检索电影记录的值。
CreatedAtAction方法执行以下操作:
测试电影后期方法
启动应用程序,然后在Movies部分选择POST方法。
单击尝试,然后在请求正文中输入要添加的电影信息:
然后单击Execute。
响应状态代码为201(已创建),响应中添加了位置标头,如下所示:
将以下代码添加到MoviesController:
PutMovie方法旨在使用数据库中提供的Id修改电影记录。代码片段表示一个HTTP**PUT方法,由[HttpPut]属性标记。此方法从HTTP请求的主体中提取电影记录的值。在请求URL和正文中都提供Id是至关重要的,并且它们必须对齐。根据HTTP规范,PUT**请求要求客户端传输完整的更新实体,而不仅仅是更改。
测试PutMovie方法
然后单击Execute。
我们也可以在数据库中看到更新的信息:
如果我们尝试更新数据库中不存在的记录,我们会得到404 not Found错误:
DELETE方法
将以下代码添加到MoviesController:
DeleteMovie方法旨在从数据库中删除具有指定Id的电影记录。代码片段表示一个HTTP**DELETE方法,由[HttpDelete**]属性表示。此方法预期URL中存在Id,以精确定位要删除的电影记录。
测试DeleteMovie方法
启动应用程序,然后在Movies部分选择DELETE方法。
单击尝试,并在Id字段中输入要删除的电影的Id:
然后单击执行。_
不需要为此操作提供请求体。响应状态为204 No Content,表示删除操作执行成功
我们也可以从数据库中检查记录是否已删除:
完整的源代码可以在这里找到:
感谢您的阅读!!
原文链接:https://medium.[com](https://www.explinks.com/provider/uid20241115192306ea69b0)/@chandrashekharsingh25/build-a-restful-web-api-with-net-8-44fc93b36618