SuperAPI AI 工具集

sorcha-cli

编程与开发

查看项目

更新于 10-16 04:01

技能介绍

用途

Sorcha CLI 技能用于构建和维护 Sorcha 命令行工具(sorcha)。该工具是用于管理 Sorcha 分布式账本平台的 .NET 10 全局工具。技能面向创建 CLI 命令、添加 API 客户端等开发任务。

主要能力与技术要点

工具使用 System.CommandLine 2.0.2 进行命令解析,使用 Refit 作为 HTTP API 客户端,使用 Spectre.Console 输出富文本终端内容。

项目位于 src/Apps/Sorcha.Cli/,包含以下目录:

  • Commands/:命令实现
  • Infrastructure/:辅助工具(ConsoleHelper、ExitCodes、HttpClientFactory)
  • Models/:API 的请求/响应 DTO
  • Services/:Refit 接口与服务契约
  • Program.cs:入口点与命令注册

技能提供新增命令的代码模板,包括继承 Command、通过 Option 构造函数以 (name, description) 形式定义选项、添加选项到 Options 集合、使用 SetAction 设置异步处理程序并返回 ExitCodes 等功能。

技能说明 System.CommandLine 2.0.2 的关键用法:Option 构造函数写法、通过 option.Aliases.Add("-i") 单独添加短别名、Option 的 name 属性返回带短横线的名称(如 "--id")、使用 parseResult.GetValue(_option) 取值、通过 this.SetAction(async (pr, ct) => {...}) 设置动作。测试中查找选项应使用 o.Name == "--id",因为 Aliases 集合不包含选项名称。

技能还介绍父命令通过 Subcommands.Add 组织子命令,以及在 Program.cs 中通过 rootCommand.Subcommands.Add(...) 注册命令。

Refit 部分提供接口定义示例,涵盖 GET、POST、PUT、DELETE 动词,路径参数、查询参数、请求体、Authorization 头、分页参数以及 OData 查询($filter、$orderby、$top、$skip)。命令中通过 clientFactory 创建客户端、通过 authService 获取访问令牌并以 Bearer 形式传入。

错误处理模式基于 ApiException 的状态码分支:NotFound、Unauthorized、Forbidden 以及通用错误,分别返回对应退出码。退出码包括 Success(0)、GeneralError(1)、AuthenticationError(2)、AuthorizationError(3)、NotFound(4)、ValidationError(5)。

输出方面,ConsoleHelper 提供 WriteSuccess、WriteError、WriteWarning、WriteInfo 方法。技能展示 JSON 输出支持:当输出格式为 json 时用 JsonSerializer 序列化,否则以表格形式输出。

依赖版本

  • System.CommandLine 2.0.2:CLI 框架
  • Refit 9.0.2:HTTP 客户端
  • Refit.HttpClientFactory 9.0.2:DI 集成
  • Spectre.Console 0.54.0:富文本控制台输出
  • System.IdentityModel.Tokens.Jwt 8.3.0:JWT 令牌处理

工具版本管理与使用方式

Sorcha CLI 可作为 .NET 全局工具安装,也可从本地构建运行。查询全局工具用 dotnet tool list --global | grep -i sorcha,定位命令用 which sorcha(Linux/macOS)或 where sorcha(Windows)。本地开发时可卸载全局工具以避免冲突:dotnet tool uninstall --global sorcha.cli。

本地构建后(dotnet build src/Apps/Sorcha.Cli)可执行文件位于 bin/Release/net10.0/Sorcha.Cli.exe 或 bin/Debug/net10.0/Sorcha.Cli.exe。编写 walkthrough 脚本时优先查找本地构建,找不到再回退到全局工具 sorcha。

出现意外命令选项或缺失功能时,可检查全局工具版本与源码是否不同、用 dotnet build src/Apps/Sorcha.Cli -c Release 重建,并用 sorcha --version 与 ./Sorcha.Cli.exe --version 对比验证。

文档资源

可通过 Context7 获取最新的 System.CommandLine 文档,库 ID 为 /dotnet/command-line-api。推荐查询包括 "Option constructor aliases System.CommandLine 2.0"、"SetAction handler pattern"、"ParseResult GetValue"。

相关技能与限制

相关技能包括 commands、testing、models、dotnet、xunit、fluent-assertions、moq。关于该工具的支持平台、收费与价格信息,资料暂未提供。