mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
121 lines
2.8 KiB
Protocol Buffer
121 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package weather;
|
|
|
|
option go_package = "./proto;weather";
|
|
|
|
service Weather {
|
|
rpc Now(NowRequest) returns (NowResponse) {}
|
|
rpc Forecast(ForecastRequest) returns (ForecastResponse) {}
|
|
}
|
|
|
|
message Forecast {
|
|
// date of the forecast
|
|
string date = 1;
|
|
// max temp in celsius
|
|
double max_temp_c = 2;
|
|
// max temp in fahrenheit
|
|
double max_temp_f = 3;
|
|
// minimum temp in celsius
|
|
double min_temp_c = 4;
|
|
// minimum temp in fahrenheit
|
|
double min_temp_f = 5;
|
|
// the average temp in celsius
|
|
double avg_temp_c = 6;
|
|
// the average temp in fahrenheit
|
|
double avg_temp_f = 7;
|
|
// will it rain
|
|
bool will_it_rain = 8;
|
|
// chance of rain (percentage)
|
|
int32 chance_of_rain = 9;
|
|
// forecast condition
|
|
string condition = 10;
|
|
// the URL of forecast condition icon. Simply prefix with either http or https to use it
|
|
string icon_url = 11;
|
|
// time of sunrise
|
|
string sunrise = 12;
|
|
// time of sunset
|
|
string sunset = 13;
|
|
// max wind speed mph
|
|
double max_wind_mph = 14;
|
|
// max wind speed kph
|
|
double max_wind_kph = 15;
|
|
}
|
|
|
|
// Get the weather forecast for the next 1-10 days
|
|
message ForecastRequest {
|
|
// location of the forecase
|
|
string location = 1;
|
|
// number of days. default 1, max 10
|
|
int32 days = 2;
|
|
}
|
|
|
|
message ForecastResponse {
|
|
// location of the request
|
|
string location = 1;
|
|
// region related to the location
|
|
string region = 2;
|
|
// country of the request
|
|
string country = 3;
|
|
// e.g 37.55
|
|
double latitude = 4;
|
|
// e.g -77.46
|
|
double longitude = 5;
|
|
// timezone of the location
|
|
string timezone = 6;
|
|
// the local time
|
|
string local_time = 7;
|
|
// forecast for the next number of days
|
|
repeated Forecast forecast = 8;
|
|
}
|
|
|
|
// Get the current weather report for a location by postcode, city, zip code, ip address
|
|
message NowRequest {
|
|
// location to get weather e.g postcode, city
|
|
string location = 1;
|
|
}
|
|
|
|
message NowResponse {
|
|
// location of the request
|
|
string location = 1;
|
|
// region related to the location
|
|
string region = 2;
|
|
// country of the request
|
|
string country = 3;
|
|
// e.g 37.55
|
|
double latitude = 4;
|
|
// e.g -77.46
|
|
double longitude = 5;
|
|
// timezone of the location
|
|
string timezone = 6;
|
|
// the local time
|
|
string local_time = 7;
|
|
// temperature in celsius
|
|
double temp_c = 8;
|
|
// temperature in fahrenheit
|
|
double temp_f = 9;
|
|
// feels like in celsius
|
|
double feels_like_c = 10;
|
|
// feels like in fahrenheit
|
|
double feels_like_f = 11;
|
|
// the humidity percentage
|
|
int32 humidity = 12;
|
|
// cloud cover percentage
|
|
int32 cloud = 13;
|
|
// whether its daytime
|
|
bool daytime = 14;
|
|
// the weather condition
|
|
string condition = 15;
|
|
// the URL of the related icon. Simply prefix with either http or https to use it
|
|
string icon_url = 16;
|
|
// wind in mph
|
|
double wind_mph = 17;
|
|
// wind in kph
|
|
double wind_kph = 18;
|
|
// wind direction
|
|
string wind_direction = 19;
|
|
// wind degree
|
|
int32 wind_degree = 20;
|
|
}
|
|
|