本教程将提供有关使用 .NET Core 7 和最小 API 方法构建 RESTful API 的实践介绍。
.NET Core 和 ASP.NET Core 是用于创建强大的 RESTful API 的流行框架。在本教程中,我们将使用它来开发一个简单的 Minimal API 来模拟信用评分。最小 API 提供了一种使用 ASP.NET Core 创建高性能 HTTP API 的简化方法。它们允许您通过最少的设置和代码轻松构建完整的 REST 端点。您可以流畅地定义 API 路由和操作来简化开发过程,而不是依赖传统的脚手架和控制器。
我们将创建一个端点,允许用户通过向 API 发送请求来检索信用评分。我们还可以使用 POST 和 GET 方法保存和检索信用评分。然而,值得注意的是,我们不会连接到任何现有的后端系统来获取信用评分;相反,我们将使用随机数生成器来生成分数并将其返回给用户。尽管此 API 相对简单,但它将演示使用 .NET Core 和 ASP.NET 进行 REST API 开发的基础知识。
前提条件
在开始之前,我们必须确保完成以下几个前提条件。要跟随并运行本教程,你需要以下内容:
.NET Core安装
IDE或代码编辑器
使用Postman测试我们的API端点
创建初始项目
我们将使用.NET cli工具来创建我们的初始项目。.NET 命令行界面提供了开发、构建、运行和发布 .NET 应用程序的能力。
.NET cli new 命令提供了许多模板来创建项目。您还可以添加命令以从NuGet search 查找社区开发的模板或用于查看 Microsoft 提供的可用模板。dotnet new list
文章来源地址https://www.toymoban.com/diary/apps/459.html
我们将创建一个最小的 API,并从尽可能干净的状态开始。我们将使用空的 ASP.NET Core 模板。在您选择的目录中;在终端中输入以下内容:
dotnet new web
您会注意到目录结构将如下所示:
我们将在文件中完成所有工作Program.cs。其起始代码应类似于以下内容:
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
我们可以看到我们的起始代码是多么简洁和可读。让我们逐行分解模板提供的代码:
该WebApplication.CreateBuilder(args)方法创建该类的一个新实例WebApplicationBuilder,用于配置和构建该WebApplication实例。args 参数是一个可选的命令行参数数组,可以在运行时传递给应用程序。
builder.Build()调用该方法来创建该类的新实例WebApplication,该实例代表正在运行的应用程序。该实例配置应用程序、定义路由并处理请求。
第三行定义了使用该方法的应用程序的根路径(“/”)的路由app.MapGet()。这意味着当请求根路径时,应用程序将使用字符串“Hello World!”进行响应。
我们通过调用该方法来启动应用程序app.Run()。
使用构建器模式,我们可以配置和自定义WebApplication实例。这使我们能够以结构化和可扩展的方式定义应用程序的行为,包括中间件、路由和其他设置。例如,WebApplication构建器创建的实例可以被视为应用程序的“入口点”,它处理请求并生成响应。
总的来说,此代码块在 .NET 7 中创建了一个简单的 Minimal API,它以“Hello World!”进行响应。请求应用程序的根路径时的消息。
接下来,我们将自定义 API 来模拟检索信用评分。
在代码中添加
在 中Program.cs,我们将容纳我们的端点和业务逻辑。我们将定义creditscore端点以提供 GET 和 POST 操作。我们将实施一个列表来存储我们想要的任何信用评分。我们还将定义一个端点来检索已保存的信用评分列表。我们将使用 CreditScore record,这是 C# 10 中类似于结构的新引用类型。Arecord是一个轻量级且不可变的数据对象,针对比较和相等性检查进行了优化。
Program.cs使用以下代码填充:
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); var userAddedCreditScores = new List<CreditScore>(); app.MapGet("/creditscore", () => { var score = new CreditScore ( Random.Shared.Next(300, 850) ); return score; }); app.MapPost("/creditscore", (CreditScore score) => { userAddedCreditScores.Add(score); return score; }); app.MapGet("/userAddedCreditScores", () => userAddedCreditScores); app.Run(); record CreditScore(int Score) { public string? CreditRating { get => Score switch { >= 800 => "Excellent", >= 700 => "Good", >= 600 => "Fair", >= 500 => "Poor", _ => "Bad" }; } }
如前所述,我们的代码首先为 Web 应用程序创建一个构建器对象,然后使用它来构建应用程序实例。它还定义了一个record名为 的类型,该类型CreditScore具有一个名为 的单个属性Score和一个名为 的只读属性CreditRating。这可能看起来有点奇怪,因为我们在使用记录后定义了它。但是,这是由于命名空间造成的,并且record必须在命名空间之外定义WebApplication。
app.MapGet()该应用程序使用和方法公开多个端点app.MapPost()。第一个端点/creditscore是一个生成分数在 300 到 850 之间的GET新随机对象的方法。我们将为同一端点定义一个方法,该方法接受请求正文中的对象,将其添加到名为 的列表中,并返回与调用者相同的对象。另一个端点是 GET 方法,它返回已添加到 的所有对象的列表。CreditScorePOSTCreditScoreuserAddedCreditScoresCreditScore/userAddedCreditScoresCreditScoreuserAddedCreditScores
最后,应用程序开始使用 运行app.Run()。
运行和测试 API
编写好代码后,运行以下命令来编译并运行我们的项目:
dotnet run
该 API 现已投入使用并准备进行测试。运行前面的命令后,您将在控制台中看到哪个端口已用于托管您的 API。Properties > launchSettings.json您可以通过编辑文件或添加编辑app.Run()命令来定义要使用的端口,Program.cs如下所示,将 3000 替换为所需的端口号:
app.Run("http://localhost:3000");
您可以使用 Postman 等工具向 API 发送 HTTP 请求。对我来说,获得信用评分的终点是localhost:5242/creditscore。当您向此端点发送请求时,您应该收到200 OK状态代码、随机数生成器生成的信用评分以及信用评级。
我们可以通过向端点发送 POST 请求来保存信用评分creditscore
。我们用一个对象构成请求的主体CreditScore
。
最后,我们可以通过向端点发送 GET 请求来检索所有添加的分数/userAddedCreditScores。
总结一下,我们使用.NET Core 7和ASP.NET开发了一个基本的RESTful最小API。
这段代码可以为您的应用程序创建更复杂的API提供基础。随着您继续开发API,您可能希望考虑实施安全措施,如API密钥、与API网关集成、监控API的使用情况或通过API的变现来产生收入。
文章来源:https://www.toymoban.com/diary/apps/459.html
到此这篇关于使用.NET Core 7构建一个简洁的RESTful Minimal API的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!