A thin, Go Magic Seaweed API client for fetching marine forecast data.
Basic usage:
import (
"github.com/mdb/seaweed"
)
func main() {
forecasts, err := seaweed.Get("<YOUR_API_KEY>", "<SOME_SPOT_ID")
if err != nil {
panic(err)
}
fmt.Printf("%# v", forecasts)
}
Alternatively, instantiate a seaweed.Client
:
import (
"github.com/mdb/seaweed"
)
func main() {
client := seaweed.NewClient("<YOUR_API_KEY>")
resp, err := client.Forecast("<SOME_SPOT_ID>")
if err != nil {
panic(err)
}
fmt.Printf("%# v", resp)
}
Use a customized client:
client := seaweed.NewClient(
"<YOUR_API_KEY>",
seaweed.WithBaseURL("https://foo.com"),
seaweed.WithHTTPClient(&http.Client{}), // *http.Client
seaweed.WithLogger(logrus.New()), // *logrus.Logger
seaweed.WithClock(seaweed.RealClock{}), // seaweed.Clock
)
To adjust the *seaweed.Client
's log level:
client.Logger.SetLevel(logrus.DebugLevel)
Client methods:
import (
"github.com/mdb/seaweed"
)
client := seaweed.NewClient("<YOUR_API_KEY>")
// Full forecast
resp, err := client.Forecast("<SOME_SPOT_ID>")
// Today's forecast
resp, err := client.Today("<SOME_SPOT_ID>")
// Tomorrow's forecast
resp, err := client.Tomorrow("<SOME_SPOT_ID>")
// This weekend's forecast
resp, err := client.Weekend("<SOME_SPOT_ID>")