2.31.0

(feat): 在 IR 中增加对 base64 原始类型的支持,用于表示 Protobuf byte[]。

(fix): 修复 .ToProto.FromProto 映射器方法,以支持嵌套在消息描述符中的枚举。

2.30.3

(fix):google.rpc.Status 类型添加更好的支持,并停止为 google.apigoogle.rpc 类型生成冗余的包装器类型。

2.30.2

(fix): 修复 gRPC 代码生成,以支持具有数字标识符的枚举。

2.30.1

(fix): 修复 gRPC 代码生成,以支持具有数字标识符的枚举。

2.30.0

(feat): 添加 sln-format 配置选项。设置为 "sln" 可同时生成传统的 .sln 解决方案文件和现代的 .slnx 文件。默认值 "slnx" 仅生成 .slnx 文件。这对于需要与较旧的 .NET 工具或尚不支持 .slnx 格式的 CI 系统兼容的团队很有用。

1generators:
2 - name: fernapi/fern-csharp-sdk
3 config:
4 sln-format: sln

2.29.0

(feat): 重构枚举 JSON 序列化以消除反射。每个枚举现在都获得一个生成的序列化器,使用静态字典查找,而不是在运行时使用 Enum.GetValuesGetFieldGetCustomAttributesActivator.CreateInstance 的通用 EnumSerializer<T> / StringEnumSerializer<T>。序列化器初始化速度提升约 1,000 倍(18 ns vs 18 us),内存分配减少 160 倍;稳定状态的吞吐量保持不变。生成的代码还与 NativeAOT 和 IL-trimming 兼容。

2.28.0

(feat): 为每个测试夹具生成单独的 WireMock 服务器,而不是在所有模拟服务器测试中共享单个全局服务器。每个测试类现在在 [OneTimeSetUp]/[OneTimeTearDown] 中启动和停止自己的 WireMockServer,测试夹具使用 [Parallelizable(ParallelScope.Self)] 注解,以便 NUnit 可以并行运行它们。

2.27.1

(fix): 修复重试测试断言以匹配 SDK 的缩进 JSON 序列化。

2.27.0

(feat): 通过以下方面改进 gRPC 代码生成:

  1. 更新枚举表示和 .ToProto + .FromProto 映射器。
  2. 修复渲染 gRPC 客户端引用的问题。
  3. 更新 protoc-gen-openapi 以展开合成 oneof 类型(参考:https://github.com/fern-api/protoc-gen-openapi/releases/tag/v0.1.7)