Пряжка Swa sh создает класс промежутка времени в файле json - PullRequest
0 голосов
/ 21 апреля 2020

Я использую SwashBuckle с net ядром 3.1, но когда он создает настройки json, он включает TimeSpan в Json, а когда создает код с помощью nswag studo, он также генерирует класс временного интервала. это ошибка или где я сделал не так. это мой код при запуске:

services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "HR API", Version = "v1" });
        });

, как я уже говорил, я использую. net core 3.1 и swa sh пряжка v5.3.3. Как я могу избежать и предотвратить его генерацию промежутка времени. это мое свойство, которое нужно:

public TimeSpan? StartTime {get; set;}

, и это результат, который я извлекаю из генератора кода nswag:

[Newtonsoft.Json.JsonProperty("dayStart", Required = Newtonsoft.Json.Required.Always)]
    [System.ComponentModel.DataAnnotations.Required]
    public TimeSpan StartTime { get; set; } = new TimeSpan();

и, конечно, он также генерирует класс временного интервала, например, так:

[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.11.0 (Newtonsoft.Json v12.0.0.0)")]
public partial class TimeSpan
{
    [Newtonsoft.Json.JsonProperty("ticks", Required = Newtonsoft.Json.Required.Always)]
    public long Ticks { get; set; }

    [Newtonsoft.Json.JsonProperty("days", Required = Newtonsoft.Json.Required.Always)]
    public int Days { get; set; }

    [Newtonsoft.Json.JsonProperty("hours", Required = Newtonsoft.Json.Required.Always)]
    public int Hours { get; set; }

    [Newtonsoft.Json.JsonProperty("milliseconds", Required = Newtonsoft.Json.Required.Always)]
    public int Milliseconds { get; set; }

    [Newtonsoft.Json.JsonProperty("minutes", Required = Newtonsoft.Json.Required.Always)]
    public int Minutes { get; set; }

    [Newtonsoft.Json.JsonProperty("seconds", Required = Newtonsoft.Json.Required.Always)]
    public int Seconds { get; set; }

    [Newtonsoft.Json.JsonProperty("totalDays", Required = Newtonsoft.Json.Required.Always)]
    public double TotalDays { get; set; }

    [Newtonsoft.Json.JsonProperty("totalHours", Required = Newtonsoft.Json.Required.Always)]
    public double TotalHours { get; set; }

    [Newtonsoft.Json.JsonProperty("totalMilliseconds", Required = Newtonsoft.Json.Required.Always)]
    public double TotalMilliseconds { get; set; }

    [Newtonsoft.Json.JsonProperty("totalMinutes", Required = Newtonsoft.Json.Required.Always)]
    public double TotalMinutes { get; set; }

    [Newtonsoft.Json.JsonProperty("totalSeconds", Required = Newtonsoft.Json.Required.Always)]
    public double TotalSeconds { get; set; }

    public string ToJson()
    {
        return Newtonsoft.Json.JsonConvert.SerializeObject(this);
    }

    public static TimeSpan FromJson(string data)
    {
        return Newtonsoft.Json.JsonConvert.DeserializeObject<TimeSpan>(data);
    }

}

и Json выглядят так:

"startTime": {
        "$ref": "#/components/schemas/TimeSpan"
      },

, но перед обновлением до новой версии json было примерно так:

"startTime":{"format":"time-span","type":"string"},
...