分享好友 最新动态首页 最新动态分类 切换频道
Asp.Net创建控制台程序和WebAPI
2024-12-25 11:15

1. 控制台程序

我们将使用一个控制台应用程序,用于整合各种中间件,也是一样的方式。


数据库链接地址和账户密码登不能直接写到代码里面,所以需要添加读取 配置文件的支持。


在编辑器中,选择文件以打开它。

将以下 配置块添加到 元素下方的根 元素中。 此配置将在项目中包含新文件,并将其复制到输出文件夹。 此块中的指令可以确保在应用时将应用配置文件放在输出目录中。


现已添加用于启用读取配置所需的库,我们需要在控制台应用程序中启用该功能。在编辑器中,选择,将文件的内容替换为以下代码。


① 连接

添加对 缓存 客户端的支持。


接下来,将控制台应用程序配置为使用适用于 的 客户端。


② 连接

③ 连接

2.

本模块使用。 通过在首选命令终端中运行以下命令,确保你已安装 :


将显示类似于以下示例的输出:


确保列出了以 开头的版本。 如果未列出任何版本或未找到命令,请。

① 创建并浏览 项目


默认使用 保护 项目, 包含 开发证书。 该证书是作为首次运行体验的一部分安装的。

例如: 会生成以下输出的变体:


安装 会将 开发证书安装到本地用户证书存储。 该证书已安装,但它不受信任。 若要信任该证书,请执行一次性步骤,以运行 工具:


下面的命令提供有关 工具的帮助:


② 执行运行项目。

上述命令:

  • 在当前目录中找到项目文件。
  • 检索并安装此项目所需的任何项目依赖项。
  • 编译项目代码。
  • 使用 服务器将 托管在 和 终结点中。

创建项目时,将为 选择 到 端口,为 选择 到 端口。 通过编辑项目的 文件,可以轻松更改开发过程中使用的端口。 本模块使用以 开头的安全 URL。

应获得类似于以下内容的输出,用于指示应用正在运行:


如果你是在自己的计算机上运行此应用,可以将浏览器指向输出中显示的 链接(在上例中为 )以查看生成的页面。 请记住此端口,因为在使用 的整个模块中将一直使用它。

③ 打开 Web 浏览器并转到:

应会看到类似于这个示例的 输出:


④ 使用 文件进行测试接口

项目中包含的文件为 ,该文件用于通过标准格式测试 终结点。 多个 都支持 文件,包括 以及安装了 客户端扩展的 内部。

  1. 打开 文件。

    此文件已预配置了 变量和调用 的 GET 命令,该命令接受。

  2. 选择 上方的命令,该命令会将请求发送到正在运行的服务。

    调用此命令将打开一个响应窗口,其输出与我们在浏览器中看到的以下内容类似:

    
    

    你创建了一个 应用程序,用于提供示例天气预报数据,然后,你使用了 与该应用程序交互。

    示例方案

    假设你是一家名为 的披萨公司的员工。 经理要求你为披萨库存管理开发一个 服务,作为公司 店面和移动应用程序的必备组件。 该服务必须支持添加、查看、修改和删除披萨类型; 谓词的标准化使用方式,也称为创建、读取、更新、删除 ()。

    在深入探讨如何编写自己的 类之前,让我们先看一下 示例中的代码,了解它的工作原理。 在本单元中,你将了解 如何在几十行代码中使用 基类和几个 属性来生成正常工作的 。 了解这些概念后,便可以编写自己的 类了。

    以下是整个 类的代码。 如果你还不明白,请不要担心。 现在来逐步完成这一过程。

    
    
    

    控制器是一个公共类,具有一个或多个称为的公共方法。 按照惯例,控制器放在项目根目录的 目录中。 操作通过路由被公开为 终结点。 因此,对 的 HTTP 请求将执行 类的 方法。

    首先要注意的是,此类继承自 基类。 这个基类提供了许多用于处理 请求的标准功能,让你可以专注于应用程序的特定业务逻辑。

    如果你在 中开发过 或模型-视图-控制器 体系结构,那么你已使用过 类。 不要通过从 类派生来创建 控制器。 派生自 ,并添加了对视图的支持,因此它用于处理网页,而不是 请求。

    有两个重要属性应用到了 ,如以下代码所示:

    
    

    启用固定行为,使生成 更加容易。 一些行为包括参数源推理、将属性路由作为一项要求以及模型验证错误处理增强功能。

    定义路由模式 。 令牌替换为用控制器的名称(不区分大小写,无 后缀)。 此控制器处理对 的请求。

    路由可能包含静态字符串,如 中所示。 在此示例中,此控制器将处理对 的请求。

    包括由 属性指定的单个控制器操作。 此属性将 请求路由到 方法。 如你所见,在上一个练习中,向 发出请求会导致返回天气预报结果。

    本模块的后面部分会介绍其他常见操作与执行 操作(、、、)的 相关联。 但 控制器只需要实现一个控制器操作。

    在本例中,你将获取返回的 的完整列表。 操作还允许通过传递标识符来检索单个项。 在 中,可以使用 特性检索单个项。 在下一练习中将实现该属性。

⑤ 现在,你已了解了 控制器的基本组件,现在可以创建自己的 类了。

在开始为披萨实现 之前,需要添加一个数据存储供你执行操作。

你需要一个 类来表示库存中的披萨。 模型包含用于表示披萨特征的属性。 模型用于在 中传递数据,以及在数据存储中保存披萨选项。

在本单元中,该数据存储是一个简单的本地内存中缓存服务。 在实际应用程序中,可以考虑将数据库(例如 )与 结合使用。

1. 创建披萨模型


将以下代码添加到并保存所做的更改。 此类定义披萨。


2. 添加数据服务


将以下代码添加到并保存所做的更改。 此代码创建内存中披萨数据服务。


默认情况下,此服务提供一个简单的内存中数据缓存服务,其中包含两个披萨。 我们的 使用该服务进行演示。 如果先停止再启动 ,内存中数据缓存会重置为的构造函数中的两个默认披萨。

⑥ 运行以生成应用:生成成功,且没有任何警告。 如果生成失败,请检查输出以获取故障排除信息。

控制器是一个公共类,具有一个或多个称为的公共方法。 按照惯例,控制器放在项目根目录的 目录中。 这些操作在 控制器内公开为 终结点。

添加控制器

在 中选择 文件夹,并添加名为 的新文件。


如前文所述,此类派生自 ,后者是 中用于处理 请求的基类。 它还包含你已经了解的两个标准属性,即 和 。 如前文所述, 属性定义了到 令牌的映射。 由于此控制器类名为 ,因此该控制器处理对 的请求。

获取所有披萨

需要实现的第一个 谓词是 ,使用该谓词,客户端可以从 获取所有披萨。 可使用内置 属性来定义从服务返回披萨的方法。

将 中的 注释替换为以下代码:


上一个操作:

  • 仅响应 HTTP 谓词,如 属性所示。
  • 返回类型为 的 实例。 类型是 中所有操作结果的基类。
  • 查询服务以获取所有披萨,并通过 的值 自动返回数据。

3. 检索单种披萨

客户端可能还需要请求获取特定披萨而非整个列表的相关信息。 你可以实现另一个 操作,此操作需要 参数。 可使用内置 属性来定义从服务返回披萨的方法。 路由逻辑将 (没有 )和 (具有 )注册为两个不同的路由。 然后,你可以编写一个单独的操作来检索单个项。

将 中的 注释替换为以下代码:


上一个操作:

  • 仅响应 HTTP 谓词,如 属性所示。
  • 要求 之后的 URL 段中包含 参数的值。 请记住,控制器级别的 属性定义了模式。
  • 查询数据库以获取与所提供的 参数匹配的披萨。

上述操作中使用的每个 实例都映射到下表中对应的 状态代码:

操作结果 状态代码说明 为隐式200内存中缓存中存在与所提供的 参数匹配的产品。 该产品包含在由 请求标头中所定义的媒体类型(默认情况下为 )的响应正文中。404内存中缓存中不存在与所提供的 参数匹配的产品。

4. 生成并运行新控制器

运行以下命令,生成并启动 :

5. 使用 文件测试控制器

  1. 打开
  2. 添加新的 以在 ### 分隔符下调用 终结点:


我们的披萨服务支持对披萨列表执行 操作。 这些操作是通过 谓词执行的,它们通过 属性进行映射。 正如你所了解的, 谓词用于从服务检索一个或多个项。 此类操作使用 属性进行批注。

下表显示了你为披萨服务实现的四个操作的映射:

操作谓词 操作 属性读取创建Update删除

你已经了解了 操作的工作原理。 让我们来详细了解一下 、 和 操作。

POST

为了使用户能够将新项添加到终结点,必须通过使用 属性来实现 操作。 将项(在此示例中是披萨)作为参数传递入方法时, 会自动将发送到终结点的任何 转换为填充的 对象。

以下是 方法的方法签名,你将在下一节中实现该方法:


属性使用 方法映射发送到 的 HTTP 请求。 此方法并不像我们在 方法中看到的那样返回披萨列表,而是返回 响应。

可让客户端知道请求是否成功,并提供新创建的披萨的 。 使用标准 状态代码,因此,无论客户端使用哪种语言或者在哪个平台上运行,它都能轻松地与客户端集成。

操作结果 状态代码说明201已将披萨添加到内存中缓存。 该披萨包含在由 请求标头中所定义的媒体类型(默认情况下为 )的响应正文中。 为隐式400请求正文的 对象无效。

幸运的是, 具有一些实用工具方法,它们可为你创建适当的 响应代码和消息。

PUT

修改或更新库存中的披萨类似于我们实现的 方法,但它使用 属性并接受 参数以及需要更新的 对象:


上述操作中使用的每个 实例都映射到下表中对应的 状态代码:

展开表

操作结果 状态代码说明204已在内存中缓存中更新了披萨。400请求正文的 值与路由的 值不匹配。 为隐式400请求正文的 对象无效。

DELETE

可实现的一种更简单的操作是 操作,该操作只接受要从内存中缓存中删除的披萨的 参数:


上述操作中使用的每个 实例都映射到下表中对应的 状态代码:

操作结果 状态代码说明204已从内存中缓存中删除了披萨。404内存中缓存中不存在与所提供的 参数匹配的披萨。

我们来继续扩展 控制器,添加在库存中创建 ()、更新 () 和删除 () 披萨的功能。

添加披萨

让我们使用 方法通过 添加披萨。

使用以下代码替换 中的 注释:


上一个操作:

  • 仅响应 HTTP 谓词,如 属性所示。
  • 将请求正文的 对象插入到内存中缓存。

由于控制器使用 属性进行批注,因此意味着将在请求正文中找到 参数。

方法调用中的第一个参数表示操作名称。 关键字用于避免对操作名称进行硬编码。 使用操作名称来生成 响应标头,该标头包含新创建的披萨的 。

修改披萨

现在,让我们使用 方法通过 更新披萨。

使用以下代码替换 中的 注释:


上一个操作:

  • 仅响应 HTTP PUT 谓词,如 属性所示。
  • 要求 之后的 URL 段中包含 参数的值。
  • 返回 ,因为在运行时之前, 返回类型未知。 、 和 方法分别返回 、 和 类型。

由于控制器批注通过 属性进行,因此暗示着将在请求正文中找到 参数。

删除披萨

最后,让我们使用 方法通过 Web API 移除披萨。

使用以下代码替换 中的 注释:


上一个操作:

  • 仅响应 HTTP 谓词,如 属性所示。
  • 要求 之后的 URL 段中包含 参数的值。
  • 返回 ,因为在运行时之前, 返回类型未知。 和 方法分别返回 和 类型。
  • 查询内存中缓存以获取与所提供的 参数匹配的披萨。

在继续操作之前,请记得保存 文件。

运行以下命令,生成并启动 :

最后测试文档如下:

最新文章
如何优化网站排名,提升搜索引擎排名(建立优化战略)
如何让自己的网站排名靠前成为了许多网站拥有者需要解决的问题,在当今信息爆炸的时代。让更多人发现你的网站,优化关键词排名可以帮助你的网站获取更多的流量。但是如何才能实现这一目标呢?调整网站结构、本文将从建立关键词优化战略、提
网站平面设计,打造视觉盛宴,提升用户体验
随着互联网的快速发展,已经成为企业、个人展示形象、传播信息的重要平台。一个优秀的网站不仅需要具备良好的功能性和实用性,更要在视觉上给带来愉悦的体验。本文将围绕网站平面设计展开,探讨其重要性、设计原则以及如何提升用户体验。一
2024年第一季度全球PC市场实现增长,AI PC贡献显著
根据市调机构CounterPoint的最新报告,2024年第一季度全球PC市场结束了连续八个季度的下滑趋势,同比增长约3%。这一增长主要得益于AI PC的兴起和带动,据悉,45%的新笔记本都是AI PC。品牌方面,联想继续稳居第一,季度出货量达到1370万台
51 SEO秘籍,深度解析网站流量与排名提升策略
51 SEO是一种高效SEO策略,通过优化关键词、内容、技术等方面,帮助网站提升搜索引擎排名和流量。通过精准关键词研究、高质量内容创作、用户体验优化等技术手段,51 SEO助力企业快速提高在线可见度,吸引更多潜在客户。随着互联网的快速发
SEO入门到精通的10个技巧大揭秘
seo入门事实上,SEO入门到精通自己只需要10个步骤,大家可以参考分析一下。1、作为SEO新手,需要了解网站建设,哪怕你不会写代码,但是你要了解网站的建站和基础html代码,这是做好SEO的第一步。简单的网站优化只需要利用网站的源码设置和
福田SEO整站优化,助力企业在线腾飞,抢占市场风口
福田SEO整站优化企业,专注于为企业提供全方位在线竞争力提升服务,助力客户抢占市场先机,实现网络营销目标。随着互联网的飞速发展,越来越多的企业开始意识到网络营销的重要性,而SEO(搜索引擎优化)作为网络营销的重要组成部分,已经成
信息流广告优化师福利:节日文案撰写,看这一篇就够了
刚刚把8月份的数据报告整理完毕,好在目标已完成,原以为月初可以松口气。打开日历才发现,还有6天就是教师节,还有9天就是中秋节,领导下达的新目标新任务随之而来。纳尼!这个月的目标任务是上个月的3倍?上个月若不是爆发了洪荒之力,不可
什么是seo专业b2b
什么是seo专业b2b什么是什么是seo专业b2b6、建立网站地图SiteMap据自己的网站结构,可以制作网站地图,让站长们的网站对搜索引擎极其友好化。让搜索引擎能过SiteMap就这个可以ftp访问整个站点上的绝大部分网页和栏目。最好有两套siteMap,一
Windows端 EMBY 调用本地播放器
问:为什么需要本地播放器?答:因为EMBY自带播放功能一般。ASS支持不佳,字幕/视频渲染效果不佳,自定义能力基本为0。Win端太多优秀的本地播放器方案,pot,mpc,mpv.....问:有没有方法可以让EMBY直接调用本地播放器?答:有。例如 embyTo
74LS系列芯片全面技术指南与应用实例
简介:74LS系列芯片是一类广泛应用于数字电子技术领域的低功耗肖特基TTL逻辑系列集成电路。该系列芯片因其低功耗、高速度和良好兼容性,在电子设备中扮演了重要角色,包括逻辑门电路、数据手册、应用示例、接口技术、故
相关文章
推荐文章
发表评论
0评