37 lines
1.6 KiB
C#
37 lines
1.6 KiB
C#
![]() |
using Newtonsoft.Json; // Используем атрибуты JsonProperty
|
|||
|
|
|||
|
namespace DailyDigestWorker.Models.OpenWeatherMap
|
|||
|
{
|
|||
|
// Основной класс ответа API
|
|||
|
public class WeatherResponseDto
|
|||
|
{
|
|||
|
[JsonProperty("weather")]
|
|||
|
public List<WeatherDescriptionDto>? Weather { get; set; } // Массив описаний погоды (обычно 1 элемент)
|
|||
|
|
|||
|
[JsonProperty("main")]
|
|||
|
public MainWeatherDataDto? Main { get; set; } // Основные погодные данные (температура и т.д.)
|
|||
|
|
|||
|
[JsonProperty("cod")]
|
|||
|
public object? Cod { get; set; } // Код ответа (200 - OK) - можно использовать для доп. проверки
|
|||
|
}
|
|||
|
|
|||
|
// Класс для описания погоды (description, icon)
|
|||
|
public class WeatherDescriptionDto
|
|||
|
{
|
|||
|
[JsonProperty("description")]
|
|||
|
public string? Description { get; set; } // Описание (напр., "ясно", "небольшой дождь")
|
|||
|
|
|||
|
[JsonProperty("icon")]
|
|||
|
public string? Icon { get; set; } // Код иконки погоды (для URL или Emoji)
|
|||
|
}
|
|||
|
|
|||
|
// Класс для основных данных (температура, ощущаемая температура)
|
|||
|
public class MainWeatherDataDto
|
|||
|
{
|
|||
|
[JsonProperty("temp")]
|
|||
|
public decimal Temp { get; set; } // Температура (в градусах Цельсия, т.к. мы указали units=metric)
|
|||
|
|
|||
|
[JsonProperty("feels_like")]
|
|||
|
public decimal FeelsLike { get; set; } // Ощущаемая температура
|
|||
|
}
|
|||
|
}
|