Documentation
¶
Overview ¶
Package zero contains the runtime for Zero's.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeRequest ¶
DecodeRequest decodes the JSON request body into T for PATCH/POST/PUT methods, and query parameters for all other method types.
func EncodeResponse ¶
func EncodeResponse[T any](r *http.Request, w http.ResponseWriter, errorHandler ErrorHandler, data T, outErr error)
EncodeResponse encodes the response body into JSON and writes it to the response writer.
Types ¶
type APIError ¶
An APIError is an error that is also a http.Handler used to encode the error.
Any request handler returning an error
type EmptyResponse ¶
type EmptyResponse []byte
EmptyResponse is used for handlers that don't return any content.
It will write an empty response with a status code based on the HTTP method used:
- POST: StatusCreated
- PUT: StatusAccepted
- PATCH: StatusAccepted
- Other: StatusOK
func (EmptyResponse) ServeHTTP ¶
func (e EmptyResponse) ServeHTTP(w http.ResponseWriter, r *http.Request)
type ErrorHandler ¶ added in v0.6.0
type ErrorHandler func(w http.ResponseWriter, msg string, code int)
ErrorHandler represents a function for handling errors from Zero's generated code.
type Event ¶
type Event[T EventPayload] struct { // contains filtered or unexported fields }
Event represents a typed CloudEvent.
Marshals to/from a JSON CloudEvent (https://cloudevents.io/)
eg.
{
"specversion": "1.0",
"type": "github.com/alecthomas/zero.User",
"source": "github.com/alecthomas/zero.PublishUserEvent",
"id": "Bob",
"data": {"name": "Bob", "age": 30}
}
func NewEvent ¶
func NewEvent[T EventPayload](payload T) Event[T]
func (Event[T]) MarshalJSON ¶
func (*Event[T]) UnmarshalJSON ¶
type EventPayload ¶
type EventPayload interface {
// ID returns the unique identifier for the event.
//
// This is required for idempotence and deduplication in the face of multiple retries.
ID() string
}
type Middleware ¶ added in v0.1.0
Middleware is a convenience type for Zero middleware.
type StatusCode ¶
type StatusCode interface {
StatusCode() int
}
StatusCode is an interface that can be implemented by response types to provide a custom status code.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
zero
command
|
|
|
internal
|
|
|
cloudevent
Package cloudevent models CloudEvents.
|
Package cloudevent models CloudEvents. |
|
codewriter
Package codewriter is a simple helper for writing out source code.
|
Package codewriter is a simple helper for writing out source code. |
|
depgraph
Package depgraph builds a Zero's dependeny injection type graph.
|
Package depgraph builds a Zero's dependeny injection type graph. |
|
directiveparser
Package directiveparser implements a parser for the Zero's compiler directives.
|
Package directiveparser implements a parser for the Zero's compiler directives. |
|
generator
Package generator generates the Zero's bootstrap code.
|
Package generator generates the Zero's bootstrap code. |
|
Package providers contains a set of builtin providers for Zero.
|
Package providers contains a set of builtin providers for Zero. |
|
leases
Package leases provides an API for acquiring and releasing leases.
|
Package leases provides an API for acquiring and releasing leases. |
|
logging
Package logging contains providers for common loggers.
|
Package logging contains providers for common loggers. |
|
sql
Package sql contains types and providers for connecting to and migrating SQL databases.
|
Package sql contains types and providers for connecting to and migrating SQL databases. |