Вопрос по правильности организации DTO c#

Работаю с внешним API, ответ приходит такой:

{
    "meta": {
        "last_updated_at": "2023-06-23T10:15:59Z"
    },
    "data": {
        "AED": {
            "code": "AED",
            "value": 3.67306
        },
        "AFN": {
            "code": "AFN",
            "value": 91.80254
        },
        "ALL": {
            "code": "ALL",
            "value": 108.22904
        },
        "AMD": {
            "code": "AMD",
            "value": 480.41659
        },
        "...": "150+ more currencies"
    }
}

Я сделал модель Currency:

/// <summary>
/// Класс представляющий валюту
/// </summary>
public class Currency
{
    /// <summary>
    /// Код валюты
    /// </summary>
    public string Code { get; set; }

    /// <summary>
    /// Курс валюты
    /// </summary>
    public double Value { get; set; }
}

И сделал DTO модели:

/// <summary>
/// Класс представляющий ответ внешнего api
/// </summary>
public class ExternalApiResponseDto
{
    /// <summary>
    /// Данные ответа
    /// </summary>
    public Dictionary<string, Currency> Data { get; set; }
}

Вопрос: правильно ли я выделил модель и DTO? Не совсем еще могу правильно определять. Второй вопрос: если я в DTO хочу добавить свойство Meta, я для этого должен создать класс с одним свойством даты, я этот класс в папке DTO создаю, или лучше внутри этого же класса ExternalAPIResponse создавать? И это должен быть класс, или лучше Record? В ответ я должен отправлять:

{
  "code": "RUB", // код валюты
  "value": 90.50 // текущий курс относительно доллара, округлен до 2 знаков
}

Для него я тоже создаю DTO, или нет смысла, так как это почти то же самое что и модель, не считая округление курса?


Ответы (0 шт):