aemet-api
Version:
Cliente TypeScript para la API de AEMET (Agencia Estatal de Meteorología)
187 lines (186 loc) • 3.71 kB
TypeScript
/**
* Opciones para inicializar el cliente de AEMET
*/
export interface AemetOptions {
/**
* URL base de la API de AEMET. Por defecto: https://opendata.aemet.es/opendata/api
*/
baseUrl?: string;
/**
* Timeout para las peticiones en milisegundos. Por defecto: 10000 (10 segundos)
*/
timeout?: number;
}
/**
* Respuesta genérica de la API de AEMET
*/
export interface AemetResponse {
descripcion: string;
estado: number;
datos: string;
metadatos: string;
}
/**
* Información de predicción diaria simplificada
*/
export interface SimpleForecast {
value: string;
descripcion: string;
tmp: {
min: number;
max: number;
};
}
/**
* Respuesta de la predicción meteorológica simplificada
*/
export interface SimpleForecastResponse {
name: string;
province: string;
today: SimpleForecast;
tomorrow: SimpleForecast;
next2: SimpleForecast;
}
/**
* Respuesta completa de la predicción meteorológica
*/
export interface ForecastResponse extends SimpleForecastResponse {
forecast: any[];
}
/**
* Estados del cielo para la predicción
*/
export type SkyState = {
[ ]: string;
};
/**
* Parámetros para solicitar valores climatológicos diarios
*/
export interface ClimateValuesParams {
/**
* Fecha de inicio para la consulta (formato: AAAA-MM-DD)
*/
startDate: string;
/**
* Fecha de fin para la consulta (formato: AAAA-MM-DD)
*/
endDate: string;
}
/**
* Estación meteorológica
*/
export interface WeatherStation {
/**
* Indicativo de la estación
*/
indicativo: string;
/**
* Nombre de la estación
*/
nombre: string;
/**
* Provincia donde se encuentra la estación
*/
provincia: string;
/**
* Altitud de la estación (en metros)
*/
altitud: number;
/**
* Coordenadas geográficas (latitud y longitud)
*/
geoposicion?: {
latitud: number;
longitud: number;
};
}
/**
* Valor climatológico diario
*/
export interface ClimateValue {
/**
* Fecha de observación
*/
fecha: string;
/**
* Indicativo de la estación
*/
indicativo: string;
/**
* Nombre de la estación
*/
nombre: string;
/**
* Provincia
*/
provincia: string;
/**
* Altitud (metros)
*/
altitud: number;
/**
* Temperatura máxima (°C)
*/
tmax?: number;
/**
* Hora de la temperatura máxima (HHMM)
*/
horatmax?: string;
/**
* Temperatura mínima (°C)
*/
tmin?: number;
/**
* Hora de la temperatura mínima (HHMM)
*/
horatmin?: string;
/**
* Temperatura media (°C)
*/
tm?: number;
/**
* Precipitación diaria (mm)
*/
prec?: number;
/**
* Presión máxima al nivel de la estación (hPa)
*/
presMax?: number;
/**
* Presión mínima al nivel de la estación (hPa)
*/
presMin?: number;
/**
* Velocidad media del viento (m/s)
*/
velmedia?: number;
/**
* Velocidad máxima del viento (m/s)
*/
racha?: number;
/**
* Dirección del viento (grados)
*/
dir?: number;
/**
* Insolación diaria (horas)
*/
inso?: number;
/**
* Presencia de niebla durante el día (0/1)
*/
nieve?: number;
}
/**
* Respuesta con los valores climatológicos diarios
*/
export interface ClimateValuesResponse {
/**
* Información de la estación
*/
station: WeatherStation;
/**
* Valores climatológicos diarios
*/
values: ClimateValue[];
}