| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package main
- import (
- "log"
- "github.com/joho/godotenv"
- "os"
- "strings"
- "net/http"
- "time"
- "encoding/json"
- "fmt"
- )
- type OpenWeather struct{
- City string `json:"name"`
- Main struct {
- Temp float64 `json:"temp"`
- } `json:"main"`
- }
- func main() {
- err := godotenv.Load()
- if err != nil {
- log.Fatalf("%v\n", err)
- }
- api := os.Getenv("openweathermap")
- city := os.Getenv("city_openweather")
- client := &http.Client{
- Timeout: 20 * time.Second,
- }
- link := "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&units=metric&appid=" + api
- url := strings.ReplaceAll(link, " ", "%20")
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- log.Fatalf("%v\n", err)
- }
- resp, err := client.Do(req)
- if err != nil {
- log.Fatalf("%v\n", err)
- }
- var WeatherData OpenWeather
- err = json.NewDecoder(resp.Body).Decode(&WeatherData)
- if err != nil {
- log.Fatalf("%v\n", err)
- }
- fmt.Println(WeatherData.City, WeatherData.Main.Temp)
- }
|