你能重写Swagger的类/结构的格式吗

rjee0c15  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(126)

我在Asp .NetCorewebapi项目中使用Swagger,但是API请求主体中的DateOnly项有问题。
用于API的模型为

public record Meeting(
    DateOnly MeetingDate,
    string Agenda);

我编写了一个包含在Asp.NET选项中的JsonConverter,因此DateOnly序列化为ISO-8601日历日期格式(即yyyy-MM-dd)或从该格式序列化。
问题是,DateOnly属性的swagger-ui中的Swagger示例显示为

"meetingDate": {
        "year": 0,
        "month": 0,
        "day": 0
      }

有没有办法告诉Swagger在记录DateOnly属性时使用ISO-8601格式?
澄清一下,如果ISO-8601格式是通过Swagger传递的,则API可以工作,但如果使用Swagger的示例,则会失败。

fcwjkofz

fcwjkofz1#

您可以将DateOnly数据类型Map为如下所示的字符串。

builder.Services.AddSwaggerGen(c=>
{
   c.MapType<DateOnly>(() => new OpenApiSchema { Type = "string", Format = "date" });
});

相关问题