Senior
Kuidas te suhtlesite hinnapakkumise pakkujaga? Kuidas te andmeid saite?
sobes.tech AI
Vastus AI-lt
Go keeles ar hinnapakkuja pakkuja suhtlemiseks kasutatakse tavaliselt HTTP-klienti, mis saadab päringuid pakkuja API-le. Andmed võivad tulla JSON või XML formaadis, mida analüüsitakse standardraamatukogude encoding/json või encoding/xml abil.
Näide andmete saamisest pakkuja API-lt:
package main
import (
"encoding/json"
"fmt"
"net/http"
"time"
)
type Quote struct {
Symbol string `json:"symbol"`
Price float64 `json:"price"`
}
func getQuote(symbol string) (*Quote, error) {
client := &http.Client{Timeout: 10 * time.Second}
url := fmt.Sprintf("https://api.provider.com/quotes/%s", symbol)
resp, err := client.Get(url)
if err != nil {
return nil, err
}
defer resp.Body.Close()
var quote Quote
if err := json.NewDecoder(resp.Body).Decode("e); err != nil {
return nil, err
}
return "e, nil
}
func main() {
quote, err := getQuote("AAPL")
if err != nil {
panic(err)
}
fmt.Printf("Symbol: %s, Price: %.2f\n", quote.Symbol, quote.Price)
}
Samuti, reaalajas andmete saamiseks saab kasutada WebSocket-ühendusi, kui neid pakkuja toetab, mis võimaldab saada uuendusi ilma pidevate päringuteta.
Oluline on hallata vigu, uuesti katseid ja vahemälu, et parandada usaldusväärsust ja jõudlust.