Вопрос по правильности организации 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, или нет смысла, так как это почти то же самое что и модель, не считая округление курса?