2.34.0
(feat): 添加 unified-client-options 配置标志。启用时,所有认证参数、
全局头部和 BaseUrl 都合并到 ClientOptions 中,使客户端
构造函数采用单一参数,无需位置参数:
之前 (默认):
之后 (启用 unified-client-options: true):
支持的认证方案:bearer token、基本认证 (用户名/密码)、header 认证、 OAuth 客户端凭据 (clientId/clientSecret + 自定义参数) 和推断认证。 全局头部 (非字面量) 也包括在内。
ClientOptions 的属性根据参数的特性使用适当的 C# 语义:
- 有环境变量回退 —
public string? ApiKey { get; set; }。 可空且可变,以便构造函数可以通过clientOptions.ApiKey ??= GetFromEnvironmentOrThrow(...)应用回退。 - 可选 (无环境变量) —
public string? ApiKey { get; init; }。 可空,构造后不可变。 - 必需 (无环境变量,非可选) —
public required string ApiKey { get; init; }。 不可空,编译器在调用处强制执行。当没有配置默认环境时,BaseUrl也是required,替代之前静默默认为""的行为。
当任何 ClientOptions 字段是 required 时,构造函数参数变为
不可空 (ClientOptions clientOptions 而不是 ClientOptions? clientOptions = null),
并且 Clone() 使用带有 [SetsRequiredMembers] 注解的内部复制构造函数。
2.33.1
(fix): 修复 README 生成,使用 generator.yml 中的 package-name 字段作为
安装说明和徽章中的 NuGet 包名称。之前,README
始终使用命名空间 (或 package-id 自定义配置) 而不是配置的
package-name,而后者是实际的 NuGet 包标识符。
2.33.0
(feat): WebSocket 工厂方法现在当通道指定 baseUrl 时,从主客户端的
多 URL 环境解析基础 URL。这允许
WebSocket 客户端使用在根客户端定义的环境 (例如,
Environment.Wss) 而不需要单独的每个 WebSocket 环境
类。
2.32.2
(fix): 修复在 netstandard2.0 和
net462 目标上字面量结构 GetHashCode 的 CS1501 构建错误。string.GetHashCode(StringComparison) 仅在
.NET Core 2.1+ / .NET Standard 2.1+ 中可用。生成的代码现在使用
StringComparer.Ordinal.GetHashCode(Value),它在所有框架上都可用。
2.32.1
(fix): 修复具有 application/x-www-form-urlencoded 内容类型的引用请求体
生成 FormRequest 而不是 JsonRequest。之前,使用带有表单 URL 编码内容类型的
$ref 模式的端点会错误地发送 JSON 序列化的
请求体,导致认证令牌请求 (例如 OAuth) 失败。