Sobes.tech
Senior

Cum ați interacționat cu furnizorul de cotații? Cum ați primit datele?

sobes.tech AI

Răspuns de la AI

Pentru a interacționa cu furnizorul de cotații în Go, se utilizează de obicei un client HTTP pentru a trimite solicitări către API-ul furnizorului. Datele pot fi primite în format JSON sau XML, care sunt analizate cu ajutorul bibliotecilor standard encoding/json sau encoding/xml.

Exemplu de obținere a datelor din API-ul furnizorului:

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(&quote); err != nil {
        return nil, err
    }
    return &quote, nil
}

func main() {
    quote, err := getQuote("AAPL")
    if err != nil {
        panic(err)
    }
    fmt.Printf("Symbol: %s, Price: %.2f\n", quote.Symbol, quote.Price)
}

De asemenea, pentru obținerea datelor în timp real, se pot folosi conexiuni WebSocket, dacă sunt suportate de către furnizor, ceea ce permite primirea actualizărilor de cote fără solicitări constante.

Un aspect important este gestionarea erorilor, încercările repetate și cache-ul datelor pentru a îmbunătăți fiabilitatea și performanța.