(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] 注解的内部复制构造函数。
(fix): 修复 README 生成,使用 generator.yml 中的 package-name 字段作为
安装说明和徽章中的 NuGet 包名称。之前,README
始终使用命名空间 (或 package-id 自定义配置) 而不是配置的
package-name,而后者是实际的 NuGet 包标识符。
(feat): WebSocket 工厂方法现在当通道指定 baseUrl 时,从主客户端的
多 URL 环境解析基础 URL。这允许
WebSocket 客户端使用在根客户端定义的环境 (例如,
Environment.Wss) 而不需要单独的每个 WebSocket 环境
类。
(fix): 修复在 netstandard2.0 和
net462 目标上字面量结构 GetHashCode 的 CS1501 构建错误。string.GetHashCode(StringComparison) 仅在
.NET Core 2.1+ / .NET Standard 2.1+ 中可用。生成的代码现在使用
StringComparer.Ordinal.GetHashCode(Value),它在所有框架上都可用。
(fix): 修复具有 application/x-www-form-urlencoded 内容类型的引用请求体
生成 FormRequest 而不是 JsonRequest。之前,使用带有表单 URL 编码内容类型的
$ref 模式的端点会错误地发送 JSON 序列化的
请求体,导致认证令牌请求 (例如 OAuth) 失败。