千家信息网

如何创建Newbe.Claptrap项目

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章给大家分享的是有关如何创建Newbe.Claptrap项目,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Newbe.Claptr
千家信息网最后更新 2025年12月02日如何创建Newbe.Claptrap项目

本篇文章给大家分享的是有关如何创建Newbe.Claptrap项目,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架。

安装项目模板

打开控制台运行以下命令来安装最新的项目模板:

dotnet new --install Newbe.Claptrap.Template

安装完毕后,可以在安装结果中查看到已经安装的项目模板。

创建项目

选择一个位置,创建一个文件夹,本示例选择在 D:\Repo 下创建一个名为 HelloClaptrap 的文件夹。该文件夹将会作为新项目的代码文件夹。

打开控制台,并且将工作目录切换到 D:\Repo\HelloClaptrap。然后运行以下命令便可以创建出项目:

dotnet new newbe.claptrap --name HelloClaptrap

通常来说,我们建议将 D:\Repo\HelloClaptrap 创建为 Git 仓库文件夹。通过版本控制来管理您的源码。

启动项目

接下来,我们使用命令行启动项目。将命令行切换到 C:\Repos\HelloClaptrap\HelloClaptrap,运行以下命令:

tye run

启动之后可以在 tye dashboard 上查看到项目模板包含的所有项目:

tye dashboard 的地址通常为 http://localhost:8000, 若端口被占用将自动使用其他端口,可以查看命令行上的提示,以得到当前具体的地址。

我们可以在如上图所示的界面上找到 helloclaptrap-webapi 服务的运行地址。例如,上图所示,其终结点地址为 http://localhost:14285。

因此,我们使用浏览器打开该地址,以查看 swagger 界面。

在 swagger 页面上,尝试调用/AuctionItems/{itemId}/statusAPI:

newbe.claptrap AuctionItems

服务返回 200 说明当前服务各个组件已经正常启动。

体验项目

使用项目模板创建的项目实际上是一个模拟拍卖竞价业务的程序。

拍卖竞价是一个典型的可能具有并发请求需要处理的业务场景。使用 Newbe.Claptrap 可以很简单的解决该问题。后续的文档中我们将连续使用该业务场景进行演示,因此,此处进行一下简单的业务场景说明。

业务规则

业务规则大致如下:

  1. 每个拍卖品由一个唯一的 itemId

  2. 拍卖品只能在一段时间内进行竞价拍卖

  3. 拍卖品有一个起始拍卖价格

  4. 所有的竞拍者都拥有一个唯一的 userId

  5. 竞拍者在拍卖时间段内可以无限次对拍卖品进行出价,只要其出价大于当前最高出价,即可算作有效出价,并成为该拍卖品目前的得标人

  6. 需要记录所有成功出价的详细情况,包括出价时间,出价额,出价人。

拍卖品的状态如下:

  • 0 Planned 等待开拍

  • 1 OnSell 正在拍卖

  • 2 Sold 已经拍出

  • 3 UnSold 流拍

API 设计

为了最简单的演示效果,本样例设计了以下这些 API :

  • GET /AuctionItems/{itemId}/status 获取指定拍卖品当前的竞价状态

  • GET /AuctionItems/{itemId} 获取指定拍卖品的详细信息

  • POST /AuctionItems 对指定的拍卖品进行出价

下面我们使用一个简单的场景来体验一下这些 API 的效果。

寻找当前在拍的拍卖品

由于拍卖品的状态受到时间的影响,为了让开发者可以在任何时候都可以找到各种状态的拍卖品,项目中使用了一些基于时间的算法,来生成所有状态的拍卖品。

开发者可以使用 0/1/2/3 四个 itemId 调用 GET /AuctionItems/{itemId}/status 获取拍卖品当前的状态。

其中至少存在一个状态为 1 OnSell 的拍卖品。为了后续方便说明,我们假设其 itemId 为 1。

查看拍卖品的详细信息

使用 GET /AuctionItems/{itemId} 可以查询到拍卖品的详细信息。例如,我们使用 itemId 为 1 进行查询,可能可以得到如下结果:

{  "state": {    "biddingRecords": null,    "basePrice": 10,    "startTime": "2021-02-27T12:59:12.673013+08:00",    "endTime": "2021-02-27T16:59:12.673013+08:00"  }}

以上结果说明:

  • 该拍卖品的起拍价格为 basePrice 10

  • 竞拍时间段为 startTime - endTime 时间的时段

  • 当前的竞拍记录 biddingRecords 为空

其中时段可能由于启动项目模板的时间发生变化,视具体项目启动时间而定。

尝试出价

接下来,我们调用 POST /AuctionItems 尝试对当前在拍的拍卖品进行出价,调用并传入参数如下:

{  "userId": 1,  "price": 36524,  "itemId": 1}

参数说明如下:

  • 出价人 userId 为 1

  • 出价为 36524

  • 拍卖品为 itemId 1

这将得到结果:

{  "success": true,  "userId": 1,  "auctionItemStatus": 1,  "nowPrice": 36524}

返回结果表明:

  • success 出价成功

  • 出价人 userId 为 1

  • 最新出价为 36524

  • 拍卖品当前状态为 1 OnSell

然后在使用 GET /AuctionItems/{itemId} 便可以查看到当前最新的拍卖品情况:

{  "state": {    "biddingRecords": {      "36524": {        "userId": 1,        "price": 36524,        "biddingTime": "2021-02-27T07:31:09.8954519+00:00"      }    },    "basePrice": 10,    "startTime": "2021-02-27T12:59:12.673013+08:00",    "endTime": "2021-02-27T16:59:12.673013+08:00"  }}

以上结果说明:

  • 出价记录已更新,添加了最新的一条竞拍详情。

这样便完成了最简单的出价演示。

开发者可以自行尝试更多不同的状态和参数体验以上 API 的基础用法。例如,出价小于当前最高出价,对非再拍商品进行出价等等操作。

停止项目

若想要停止当前正在运行的模板项目。只要在刚才运行 tye run 的控制台上使用键盘按下 Ctrl+C 即可停止正在运行的程序。

以上就是如何创建Newbe.Claptrap项目,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

拍卖 拍卖品 项目 时间 状态 模板 运行 业务 命令 结果 文件 文件夹 地址 场景 尝试 开发 控制 信息 参数 开发者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库的二级映像技术作用 万方数据库期刊论文能在线阅读吗 怎么配置服务器一次打开2个网页 怎么登陆同一服务器上的其他电脑 马鞍山h3c刀片服务器报价 济南触摸软件开发 高校网络安全隐患分析 用友u8怎么配置服务器 网络安全所遇到的问题 科技的发展推动互联网 数据库逻辑常量的位置 河北ai人工智能服务器 财务系统网络安全 网页的代码可以看到服务器地址吗 数据库链接不存在 常用数据库逻辑运算符 我的世界服务器vip管理 发动机ECU软件开发公司 上海服务器机柜哪个牌子好 互联网科技感宣传册 软件显示服务器维护中怎么回事 长沙服务器回收 数据库实现文件管理 互联网 非科技公司 科技的发展推动互联网 黄山物业管理软件开发多少钱 水务行业网络安全防护 网络安全伴我行演讲稿 网信办在网络安全监管的作用 数据库服务不可访问tcp
0