Documentation
¶
Overview ¶
Package sample provides a Connect service for ingress experiments.
Index ¶
- type Alert
- type DailyForecast
- type FetchForecastResponse
- type Forecast
- type ForecastClient
- type ForecastProvider
- type GetForecastResponse
- type GetForecastV2Response
- type GetStatusResponse
- type Server
- type Service
- func (s *Service) GetUser(ctx context.Context, request *connect.Request[samplepb.GetUserRequest]) (*connect.Response[samplepb.GetUserResponse], error)
- func (s *Service) ListUsers(ctx context.Context, request *connect.Request[samplepb.ListUsersRequest]) (*connect.Response[samplepb.ListUsersResponse], error)
- type Temperature
- type Weather
- type Wind
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Alert ¶ added in v0.19.0
type Alert struct {
ID string `json:"id,omitempty"`
Severity string `json:"severity,omitempty"`
Headline string `json:"headline,omitempty"`
}
Alert describes an active weather warning.
type DailyForecast ¶ added in v0.19.0
type DailyForecast struct {
Date string `json:"date,omitempty"`
High *Temperature `json:"high,omitempty"`
Low *Temperature `json:"low,omitempty"`
PrecipitationPercent int32 `json:"precipitation_percent,omitempty"`
Wind *Wind `json:"wind,omitempty"`
}
DailyForecast holds the weather expected on one date.
type FetchForecastResponse ¶ added in v0.19.0
type FetchForecastResponse struct {
Forecast *Forecast `json:"forecast,omitempty"`
Message *string `json:"message,omitempty"`
}
FetchForecastResponse holds a provider forecast or an error message.
type Forecast ¶ added in v0.19.0
type Forecast struct {
Location string `json:"location,omitempty"`
Days []DailyForecast `json:"days,omitempty"`
}
Forecast holds a location's daily forecasts.
type ForecastClient ¶ added in v0.16.0
type ForecastClient struct {
// contains filtered or unexported fields
}
ForecastClient fetches forecasts from a ForecastProvider, usually through egress. It sends the provider's host name so egress can select the destination.
func NewForecastClient ¶ added in v0.16.0
func NewForecastClient(target *url.URL, host string, transport http.RoundTripper, log *slog.Logger) *ForecastClient
NewForecastClient sends requests for host to target through transport.
func (*ForecastClient) Fetch ¶ added in v0.16.0
func (c *ForecastClient) Fetch(ctx context.Context, location string) (forecast *Forecast, status int)
Fetch returns the forecast for a location, or the status to report instead. A provider failure other than an unknown location is reported as a bad gateway.
type ForecastProvider ¶ added in v0.16.0
type ForecastProvider struct {
// contains filtered or unexported fields
}
ForecastProvider serves the raw HTTP JSON forecast API that the weather sample calls in dependency mode.
func NewForecastProvider ¶ added in v0.16.0
func NewForecastProvider(data []byte) (*ForecastProvider, error)
NewForecastProvider loads forecasts from the same data format as NewWeather, ignoring alerts.
func (*ForecastProvider) FetchForecast ¶ added in v0.16.0
func (p *ForecastProvider) FetchForecast(writer http.ResponseWriter, request *http.Request)
FetchForecast serves GET /v1/forecasts/{location}.
type GetForecastResponse ¶ added in v0.19.0
type GetForecastResponse struct {
Forecast *Forecast `json:"forecast,omitempty"`
Success *bool `json:"success,omitempty"`
Message *string `json:"message,omitempty"`
}
GetForecastResponse holds a forecast or an error. Scalar pointers preserve explicit false and empty values without emitting absent fields.
type GetForecastV2Response ¶ added in v0.19.0
type GetForecastV2Response struct {
Forecast *Forecast `json:"forecast,omitempty"`
Alerts []Alert `json:"alerts,omitempty"`
Success *bool `json:"success,omitempty"`
Message *string `json:"message,omitempty"`
}
GetForecastV2Response adds the location's active alerts, in no particular order.
type GetStatusResponse ¶ added in v0.19.0
type GetStatusResponse struct {
Status string `json:"status,omitempty"`
Revision string `json:"revision,omitempty"`
Message *string `json:"message,omitempty"`
}
GetStatusResponse reports the service status and revision.
type Server ¶ added in v0.3.0
type Server struct {
// contains filtered or unexported fields
}
Server serves sample Connect requests and HTTP health checks on one listener.
func NewServer ¶ added in v0.3.0
NewServer constructs a sample server around a configured Connect handler.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service serves a read-only snapshot loaded from ProtoJSON.
type Temperature ¶ added in v0.19.0
type Temperature struct {
Degrees float64 `json:"degrees,omitempty"`
Unit string `json:"unit,omitempty"`
}
Temperature holds a measurement and its unit.
type Weather ¶ added in v0.12.0
type Weather struct {
// contains filtered or unexported fields
}
Weather serves raw HTTP JSON endpoints modelled on a legacy weather service.
func NewWeather ¶ added in v0.12.0
func NewWeather(data []byte, revision string, forecasts *ForecastClient) (*Weather, error)
NewWeather loads weather from a JSON object mapping locations to GetForecastV2Response values. A non-nil forecasts client enables dependency mode.
func (*Weather) GetForecast ¶ added in v0.12.0
func (w *Weather) GetForecast(writer http.ResponseWriter, request *http.Request)
GetForecast serves GET /api/v1/forecast for a location.
func (*Weather) GetForecastV2 ¶ added in v0.12.0
func (w *Weather) GetForecastV2(writer http.ResponseWriter, request *http.Request)
GetForecastV2 serves GET /v2/forecast for a location, including its alerts.