Aller au contenu principal

Frameworks

Go (Gin) — Intégration Scell.io

Pas de SDK Go — net/http standard

Scell.io ne publie PAS de SDK Go officiel. En Gin (ou Echo, Chi, Fiber), utiliser `net/http` standard avec un `*http.Client` partagé pour le keep-alive. Encapsuler dans une struct `ScellClient` injectée dans les handlers via context ou DI. Variable `SCELL_API_KEY` via `os.Getenv`. Compatible Go 1.22+, idéal pour throughput élevé.

À retenir

  • Pas de SDK Go officiel — `net/http` standard
  • Struct `ScellClient` avec `*http.Client` partagé
  • Injection via context ou middleware Gin
  • `SCELL_API_KEY` via `os.Getenv`
  • Compatible Go 1.22+ (et Gin v1.10+)

Exemple de code

type ScellClient struct{ http *http.Client; apiKey string }

func (c *ScellClient) CreateInvoice(buyer string, amount float64) (map[string]any, error) {
    payload := map[string]any{
        "format": "factur-x",
        "buyer":  map[string]any{"name": buyer, "is_individual": true},
        "lines":  []map[string]any{{"description": "Service", "quantity": 1, "unit_price": amount, "vat_rate": 20.0}},
    }
    body, _ := json.Marshal(payload)
    req, _ := http.NewRequest("POST", "https://api.scell.io/api/v1/invoices", bytes.NewReader(body))
    req.Header.Set("X-API-Key", c.apiKey)
    req.Header.Set("Content-Type", "application/json")
    resp, err := c.http.Do(req)
    if err != nil { return nil, err }
    defer resp.Body.Close()
    var out map[string]any
    return out, json.NewDecoder(resp.Body).Decode(&out)
}

Voir aussi

Vos préférences cookies

Nous utilisons des cookies pour améliorer votre expérience. Les cookies essentiels sont toujours actifs. Politique cookies.