mcpField
S
scalar

scalar

github.com/stuartf303开发36 次安装
代码仓库

关于 scalar

此技能介绍在 .NET 服务中将 Scalar 配置为 OpenAPI 文档界面,涵盖服务设置、端点描述、主题及聚合 API 文档。

主要功能

  1. 01使用 .NET 10 配置 OpenAPI
  2. 02挂载 Scalar API 参考界面
  3. 03统一使用 Purple 主题
  4. 04为 OpenAPI 描述端点
  5. 05聚合多个服务的文档

适用场景

  1. 01为 .NET 服务添加 API 参考界面
  2. 02统一微服务中的 Scalar 外观
  3. 03在 API 网关展示聚合的 OpenAPI 文档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/stuartf303/sorcha --skill scalar

安装后在 Claude Code 中输入/scalar确认已加载。

附带文件references/patterns.mdreferences/workflows.md

详细介绍

Scalar 技能

Scalar 在此代码库中替代 Swagger/Swashbuckle,作为 OpenAPI 文档 UI。所有服务都使用 .NET 10 内置的 AddOpenApi(),并通过 Scalar 的 MapScalarApiReference() 提供 UI。项目要求所有微服务统一使用 Purple 主题。

快速开始

标准服务配置
// Program.cs - Service setup
builder.Services.AddOpenApi();

var app = builder.Build();
app.MapOpenApi();

if (app.Environment.IsDevelopment())
{
    app.MapScalarApiReference(options =>
    {
        options
            .WithTitle("Blueprint Service")
            .WithTheme(ScalarTheme.Purple)
            .WithDefaultHttpClient(ScalarTarget.CSharp, ScalarClient.HttpClient);
    });
}
带聚合文档的 API 网关
// Aggregated OpenAPI from all services
app.MapGet("/openapi/aggregated.json", async (OpenApiAggregationService service) =>
{
    var spec = await service.GetAggregatedOpenApiAsync();
    return Results.Json(spec);
})
.ExcludeFromDescription();

app.MapScalarApiReference(options =>
{
    options
        .WithTitle("Sorcha API Gateway - All Services")
        .WithTheme(ScalarTheme.Purple)
        .WithDefaultHttpClient(ScalarTarget.CSharp, ScalarClient.HttpClient)
        .WithOpenApiRoutePattern("/openapi/aggregated.json");
});

核心概念

概念用途示例
AddOpenApi()注册 OpenAPI 服务builder.Services.AddOpenApi()
MapOpenApi()暴露 /openapi/v1.jsonapp.MapOpenApi()
MapScalarApiReference()在 /scalar 挂载 Scalar UI参见上面的示例
ScalarTheme视觉主题枚举ScalarTheme.Purple
ScalarTarget代码生成目标ScalarTarget.CSharp
ScalarClientHTTP 客户端库ScalarClient.HttpClient

常见模式

为 Scalar 编写端点文档
app.MapPost("/api/wallets", handler)
    .WithName("CreateWallet")
    .WithSummary("Create a new wallet")
    .WithDescription("Creates an HD wallet with the specified algorithm")
    .WithTags("Wallets");
使用 Markdown 编写丰富的 OpenAPI 描述
builder.Services.AddOpenApi(options =>
{
    options.AddDocumentTransformer((document, context, ct) =>
    {
        document.Info.Title = "Register Service API";
        document.Info.Version = "1.0.0";
        document.Info.Description = """
            # Register Service
            
            ## Overview
            Provides a **distributed ledger** for immutable transactions.
            
            ## Key Features
            - Cryptographic signatures
            - Chain integrity verification
            """;
        return Task.CompletedTask;
    });
});

另请参阅

相关技能

  • 端点文档模式请参阅 minimal-apis 技能
  • 服务发现集成请参阅 aspire 技能
  • API 网关配置请参阅 yarp 技能

文档资源

使用 Context7 获取最新的 Scalar 文档。

Context7 使用方法:

  1. 使用 mcp__context7__resolve-library-id 搜索“scalar”
  2. 优先选择网站文档(/websites/guides_scalar),而非源代码仓库
  3. 使用解析得到的库 ID 调用 mcp__context7__query-docs 进行查询

库 ID: /websites/guides_scalar

推荐查询:

  • “Scalar .NET ASP.NET Core 配置选项和主题”
  • “Scalar 可用主题、深色模式和自定义”
  • “Scalar API 参考配置流畅 API”

评论

支持 Markdown