Я пытаюсь использовать поставщиков типа F # для включения данных о погоде в мое приложение.Я использую OpenWeatherMap.org для получения текущих данных о погоде.https://openweathermap.org/current
Иногда в ответе OpenWeatherMap не отображается JSON для дождя (например, в течение 1 часа дождя нет).
Так что, если я сделаю что-то вроде этого:
type WeatherForecast= JsonProvider<"http://api.openweathermap.org/data/2.5/weather?lat=39.64&lon=-74.28&appid=MyKeyICantSharePublicly">
...
let mydata = WeatherForecast.Load("http://api.openweathermap.org/data/2.5/weather/?lat=12&lon=12&appid=MyKeyICantSharePublicly)
printf "%s" (string mydata.Rain.``1h``)
Оператор printf не будет выполнен, потому что он не всегда знает, что такое mydata.Rain, потому что поставщик типов больше не предоставляет информацию о Rain.
В зависимости от того, когда я пытаюсь скомпилировать мойприложения, сборка завершится неудачно из-за провайдера типов.
Как использовать провайдеров типов с такой конечной точкой Rest / Json, как этот?
Пример данных.
{
"coord": {
"lon": -74.28,
"lat": 39.64
},
"weather": [
{
"id": 701,
"main": "Mist",
"description": "mist",
"icon": "50d"
},
{
"id": 721,
"main": "Haze",
"description": "haze",
"icon": "50d"
}
],
"base": "stations",
"main": {
"temp": 7.71,
"pressure": 1012,
"humidity": 93,
"temp_min": 7,
"temp_max": 9.4
},
"visibility": 4023,
"wind": {
"speed": 5.7,
"deg": 2...