Service Api's


package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
	"os"
)

const (
	API_KEY = "YOUR API"
	KOTA    = "YOUR LOCATION"
	ENDPOINT = "https://senpai-bot.store/cuaca"
)

type CuacaResult struct {
	Celcius string `json:"celcius"`
	Cuaca   string `json:"cuaca"`
	Kota    string `json:"kota"`
	Waktu   string `json:"waktu"`
}

type CuacaResponse struct {
	Code   int          `json:"code"`
	Result CuacaResult  `json:"result"`
	Message string      `json:"message,omitempty"`
}

func main() {
	encodedKota := url.QueryEscape(KOTA)
	fullURL := fmt.Sprintf("%s?apikey=%s&kota=%s", ENDPOINT, API_KEY, encodedKota)

	resp, err := http.Get(fullURL)
	if err != nil {
		fmt.Println("Gagal request:", err)
		os.Exit(1)
	}
	defer resp.Body.Close()

	var result CuacaResponse
	err = json.NewDecoder(resp.Body).Decode(&result)
	if err != nil {
		fmt.Println("Gagal parsing JSON:", err)
		os.Exit(1)
	}

	if result.Code != 200 {
		fmt.Printf("API error code: %d - %s\n", result.Code, result.Message)
		os.Exit(1)
	}

	fmt.Println("Informasi Cuaca:")
	fmt.Println("Kota     :", result.Result.Kota)
	fmt.Println("Suhu     :", result.Result.Celcius+" °C")
	fmt.Println("Cuaca    :", result.Result.Cuaca)
	fmt.Println("Waktu    :", result.Result.Waktu)
}