alpacahq / alpacahq/alpaca-trade-api-go

Inconsistent strategies for managing options when creating new client instances

Aperta
#315 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Go
Stelle
429
Fork
118
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

`NewClient` in `alpaca/rest.go` accepts a `ClientOpts` struct, where as `NewStocksClient` in` marketdata/stream/client.go` accepts a variadic list of stock options.

`NewClient`:

```go
key, secret, err := GetAlpacaCredentials()
if err != nil {
return nil, err
}
market := alpaca.NewClient(
alpaca.ClientOpts{
APIKey: key,
APISecret: secret,
BaseURL: "https://paper-api.alpaca.markets"},
)
```

`NewStocksClient`:

```go
key, secret, err := GetAlpacaCredentials()
if err != nil {
return nil, err
}
processors, err := GetProcessorCount()
if err != nil {
return nil, err
}
stocks := stream.NewStocksClient(
marketdata.IEX,
stream.WithBufferSize(1000),
stream.WithProcessors(processors),
stream.WithCredentials(key, secret),
stream.WithReconnectSettings(0, 500*time.Millisecond),
stream.WithLogger(&AlpacaStreamLogger{}),
)
```

Please note that `WithCredentials` and `APIKey` + `APISecret` are just different enough to cause confusion.

I by far prefer the variadic list approach.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.