我使用记录作为强类型 ID。
[TypeConveter(xxxxxx)]
public record ClientId(Ulid Value);
我创建了可以正常工作的实体框架和 Json 转换器。
示例
public class Request
{
[TypeConverter(xxxxxxxx])
public ClientId Id { get; set; }
public string Name { get; set; }
}
序列化并且 API 正确响应
{
"ClientId": "someidstring",
"Name": "some name"
}
但是,Swagger 将签名显示为
{
"ClientId"{id:{}}:
"Name": "string"
}
我希望 Swagger 显示正确的 API 定义:
{
"ClientId": "someidstring",
"Name": "some name"
}
我通过为类创建一个类型并添加到 swager gen 来解决这个问题
options.MapType(() => new OpenApiSchema { Type = "string" });
[TypeConverter(typeof(GatewayIdTypeConverter))]