使用.NET Core 7构建一个简洁的RESTful Minimal API

本教程将提供有关使用 .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();

我们可以看到我们的起始代码是多么简洁和可读。让我们逐行分解模板提供的代码:

  1. WebApplication.CreateBuilder(args)方法创建该类的一个新实例WebApplicationBuilder,用于配置和构建该WebApplication实例。args 参数是一个可选的命令行参数数组,可以在运行时传递给应用程序。

  2. builder.Build()调用该方法来创建该类的新实例WebApplication,该实例代表正在运行的应用程序。该实例配置应用程序、定义路由并处理请求。

  3. 第三行定义了使用该方法的应用程序的根路径(“/”)的路由app.MapGet()。这意味着当请求根路径时,应用程序将使用字符串“Hello World!”进行响应。

  4. 我们通过调用该方法来启动应用程序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状态代码、随机数生成器生成的信用评分以及信用评级。

 API 发送 HTTP 请求

我们可以通过向端点发送 POST 请求来保存信用评分creditscore我们用一个对象构成请求的主体CreditScore

构成请求的主体CreditScore

最后,我们可以通过向端点发送 GET 请求来检索所有添加的分数/userAddedCreditScores。

发送 GET 请求

总结一下,我们使用.NET Core 7和ASP.NET开发了一个基本的RESTful最小API。

这段代码可以为您的应用程序创建更复杂的API提供基础。随着您继续开发API,您可能希望考虑实施安全措施,如API密钥、与API网关集成、监控API的使用情况或通过API的变现来产生收入。


到此这篇关于使用.NET Core 7构建一个简洁的RESTful Minimal API的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/apps/459.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
使用Python创建待办事项列表管理器,任务管理或者说任务管理清单程序
上一篇 2023年10月24日 00:22
在Web应用程序中发送通知的方法及教程
下一篇 2023年10月24日 01:08

相关文章

  • ChatGPT Plugin 插件开发:基于 ASP.NET Core Minimal API

    这是一篇ChatGPT插件开发教程,描述如何使用 ASP.NET Core Minimal API 开发 ChatGPT 插件,以最简单的 Todo List 指导示例作为入门教程。 这个Todo List插件主要功能是以自然语言的方式向ChatGPT发起指令,ChatGPT将根据合适的时机选择调用此插件。例如:我明天下午3点有一个会议,请帮我

    2024年02月02日
    浏览(48)
  • ASP.NET Core 中基于 Minimal APIs 的Web API

    Minimal APIs 是ASP.NET Core中快速构建 REST API 的方式,可以用最少的代码构建全功能的REST API。比如下面三行代码: 可以实现在请求网站根目录结点的时候,返回\\\"Hello World!\\\"。 这种方式的Web API可以用于构建微服务,极简功能的网站。 下面代码,将几个 HTTP 请求的 url映射到 Lambda

    2024年02月10日
    浏览(43)
  • 详解 .Net6 Minimal API 的使用方式

    随着 .Net6 的发布,微软也改进了对之前 ASP.NET Core 构建方式,使用了新的 Minimal API 模式。以前默认的方式是需要在 Startup 中注册 IOC 和中间件相关,但是在 Minimal API 模式下你只需要简单的写几行代码就可以构建一个 ASP.NET Core的Web 应用,可谓非常的简单,加之配合 c# 的 glob

    2024年02月08日
    浏览(40)
  • 解释 RESTful API,以及如何使用它构建 web 应用程序。

    RESTful API是一种利用HTTP协议进行通信的Web API设计风格,它采用了一组统一且可缓存的操作,包括GET、POST、PUT、DELETE等,通过URL来定位资源,以及使用JSON、XML等格式来传输数据,以实现系统之间的数据交互和资源共享。 使用RESTful API构建Web应用程序,首先需要设计API的URL、

    2024年02月11日
    浏览(70)
  • 解释 RESTful API,以及如何使用它构建 web 应用程序

             RESTful API stands for Representational State Transfer Application Programming Interface. It is a set of principles and guidelines for building web services that provide data in a standard format, typically JSON or XML. RESTful API emphasizes on uniformity, scalability, reliability, performance, and flexibility. It operates on HTTP and follo

    2024年02月14日
    浏览(70)
  • 一个基于.NET Core构建的简单、跨平台、模块化的商城系统

    今天大姚给大家分享一个基于.NET Core构建的简单、跨平台、模块化、完全开源免费(MIT License)的商城系统:Module Shop。 商品:分类、品牌、单位、选项(销售属性)、属性、属性模板、属性组。 销售:订单、物流。 内容:首页配置、评论、回复。 配置:国家、用户、仓库

    2024年03月27日
    浏览(210)
  • 使用 Python 和 Flask 构建简单的 Restful API 第 1 部分

            我将把这个系列分成 3 或 4 篇文章。在本系列的最后,您将了解使用flask构建 restful API 是多么容易。在本文中,我们将设置环境并创建将显示“Hello World”的终结点。         我假设你的电脑上安装了python 2.7和pip。我已经在python 2.7上测试了本文中介绍的代码,

    2024年02月13日
    浏览(45)
  • 什么是RESTful API,以及如何它使用构建 web 应用程序(InsCode AI 创作助手)

    RESTful API 是一种基于 REST(Representational State Transfer,表征状态转移) 架构风格的 API,它使用 HTTP 协议的方法(GET,POST,PUT,DELETE)来实现资源的创建、读取、更新和删除。通过这种方式,API 可以更加简单和灵活,使得不同编程语言之间的交互更加容易。 使用 RESTful API 构建

    2024年02月09日
    浏览(67)
  • 后端 .net7 Minimal API 限流中间件(微信小程序无师自通十)

            我的微信小程序使用.net7 Minimal API 作为后端,当服务器摆上公网后,可以观察到很多的攻击行为和暴力访问。所以,我需要使用微软的限流中间件部署相应的功能在服务器上 : AddFixedWindowLimiter using Microsoft.AspNetCore.RateLimiting; using System.Threading.RateLimiting; 后端

    2024年02月12日
    浏览(38)
  • .Net Core webapi RestFul 统一接口数据返回格式

    在RestFul风格盛行的年代,大部分接口都需要一套统一的数据返回格式,那么我们怎么才能保证使用统一的json数据格式返回呢,下面给大家简单介绍一下: 假如我们需要接口统一返回一下数据格式: json对象中data是返回的实际结果对象,可以是一个对象、一个list、一个字符串

    2024年01月16日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包