Skip to content
/ seaweed Public

A thin, Go Magic Seaweed API client for fetching surf forecast data.

License

Notifications You must be signed in to change notification settings

mdb/seaweed

Repository files navigation

CI PkgGoDev Go Report Card

seaweed

A thin, Go Magic Seaweed API client for fetching marine forecast data.

Usage

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>")

About

A thin, Go Magic Seaweed API client for fetching surf forecast data.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published