Documentation
¶
Index ¶
- func GetRolesForSignature(operation string) []string
- func GetRolesForTokenHeader(operation string) []string
- func WithServerURL(ctx context.Context, u *url.URL) context.Context
- type Client
- type ClientOption
- type ErrorHandler
- type Event
- type EventWebhookOK
- type GetStatusOK
- type Handler
- type Invoker
- type Labeler
- type Middleware
- type OperationName
- type Option
- type Route
- type SecurityHandler
- type SecuritySource
- type Server
- type ServerOption
- func WithErrorHandler(h ErrorHandler) ServerOption
- func WithMaxMultipartMemory(max int64) ServerOption
- func WithMethodNotAllowed(methodNotAllowed func(w http.ResponseWriter, r *http.Request, allowed string)) ServerOption
- func WithMiddleware(m ...Middleware) ServerOption
- func WithNotFound(notFound http.HandlerFunc) ServerOption
- func WithPathPrefix(prefix string) ServerOption
- type Signature
- type SignedWebhookOK
- type TokenHeader
- type UnimplementedHandler
- type WebhookClient
- type WebhookHandler
- type WebhookServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetRolesForSignature ¶
GetRolesForSignature returns the required roles for the given operation.
This is useful for authorization scenarios where you need to know which roles are required for an operation.
Example:
requiredRoles := GetRolesForSignature(AddPetOperation)
Returns nil if the operation has no role requirements or if the operation is unknown.
func GetRolesForTokenHeader ¶
GetRolesForTokenHeader returns the required roles for the given operation.
This is useful for authorization scenarios where you need to know which roles are required for an operation.
Example:
requiredRoles := GetRolesForTokenHeader(AddPetOperation)
Returns nil if the operation has no role requirements or if the operation is unknown.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client implements OAS client.
func NewClient ¶
func NewClient(serverURL string, sec SecuritySource, opts ...ClientOption) (*Client, error)
NewClient initializes new Client defined by OAS.
type ClientOption ¶
type ClientOption interface {
// contains filtered or unexported methods
}
ClientOption is client config option.
func WithClient ¶
func WithClient(client ht.Client) ClientOption
WithClient specifies http client to use.
type Event ¶
type Event struct {
ID string `json:"id"`
}
Ref: #/components/schemas/Event
func (*Event) MarshalJSON ¶
MarshalJSON implements stdjson.Marshaler.
func (*Event) UnmarshalJSON ¶
UnmarshalJSON implements stdjson.Unmarshaler.
type EventWebhookOK ¶
type EventWebhookOK struct{}
EventWebhookOK is response for EventWebhook operation.
type Handler ¶
type Handler interface {
// GetStatus implements getStatus operation.
//
// GET /status
GetStatus(ctx context.Context) error
}
Handler handles operations described by OpenAPI v3 specification.
type Invoker ¶
type Invoker interface {
// GetStatus invokes getStatus operation.
//
// GET /status
GetStatus(ctx context.Context) error
}
Invoker invokes operations described by OpenAPI v3 specification.
type Labeler ¶
type Labeler struct {
// contains filtered or unexported fields
}
Labeler is used to allow adding custom attributes to the server request metrics.
func LabelerFromContext ¶
LabelerFromContext retrieves the Labeler from the provided context, if present.
If no Labeler was found in the provided context a new, empty Labeler is returned and the second return value is false. In this case it is safe to use the Labeler but any attributes added to it will not be used.
func (*Labeler) AttributeSet ¶
AttributeSet returns the attributes added to the Labeler as an attribute.Set.
type OperationName ¶
type OperationName = string
OperationName is the ogen operation name
const ( GetStatusOperation OperationName = "GetStatus" EventWebhookOperation OperationName = "EventWebhook" SignedWebhookOperation OperationName = "SignedWebhook" )
type Option ¶
type Option interface {
ServerOption
ClientOption
}
Option is config option.
func WithAttributes ¶
WithAttributes specifies default otel attributes.
func WithMeterProvider ¶
func WithMeterProvider(provider metric.MeterProvider) Option
WithMeterProvider specifies a meter provider to use for creating a meter.
If none is specified, the otel.GetMeterProvider() is used.
func WithTracerProvider ¶
func WithTracerProvider(provider trace.TracerProvider) Option
WithTracerProvider specifies a tracer provider to use for creating a tracer.
If none is specified, the global provider is used.
type Route ¶
type Route struct {
// contains filtered or unexported fields
}
Route is route object.
func (Route) OperationGroup ¶
OperationGroup returns the x-ogen-operation-group value.
func (Route) OperationID ¶
OperationID returns OpenAPI operationId.
type SecurityHandler ¶
type SecurityHandler interface {
// HandleSignature handles signature security.
HandleSignature(ctx context.Context, operationName OperationName, t Signature) (context.Context, error)
// HandleTokenHeader handles tokenHeader security.
HandleTokenHeader(ctx context.Context, operationName OperationName, t TokenHeader) (context.Context, error)
}
SecurityHandler is handler for security parameters.
type SecuritySource ¶
type SecuritySource interface {
// Signature provides signature security value.
Signature(ctx context.Context, operationName OperationName, req *http.Request) error
// TokenHeader provides tokenHeader security value.
TokenHeader(ctx context.Context, operationName OperationName) (TokenHeader, error)
}
SecuritySource is provider of security values (tokens, passwords, etc.).
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server implements http server based on OpenAPI v3 specification and calls Handler to handle requests.
func NewServer ¶
func NewServer(h Handler, sec SecurityHandler, opts ...ServerOption) (*Server, error)
NewServer creates new Server.
type ServerOption ¶
type ServerOption interface {
// contains filtered or unexported methods
}
ServerOption is server config option.
func WithErrorHandler ¶
func WithErrorHandler(h ErrorHandler) ServerOption
WithErrorHandler specifies error handler to use.
func WithMaxMultipartMemory ¶
func WithMaxMultipartMemory(max int64) ServerOption
WithMaxMultipartMemory specifies limit of memory for storing file parts. File parts which can't be stored in memory will be stored on disk in temporary files.
func WithMethodNotAllowed ¶
func WithMethodNotAllowed(methodNotAllowed func(w http.ResponseWriter, r *http.Request, allowed string)) ServerOption
WithMethodNotAllowed specifies Method Not Allowed handler to use.
func WithMiddleware ¶
func WithMiddleware(m ...Middleware) ServerOption
WithMiddleware specifies middlewares to use.
func WithNotFound ¶
func WithNotFound(notFound http.HandlerFunc) ServerOption
WithNotFound specifies Not Found handler to use.
func WithPathPrefix ¶
func WithPathPrefix(prefix string) ServerOption
WithPathPrefix specifies server path prefix.
type Signature ¶
func (*Signature) GetRequest ¶
GetRequest returns the value of Request.
func (*Signature) SetRequest ¶
SetRequest sets the value of Request.
type SignedWebhookOK ¶
type SignedWebhookOK struct{}
SignedWebhookOK is response for SignedWebhook operation.
type TokenHeader ¶
func (*TokenHeader) GetAPIKey ¶
func (s *TokenHeader) GetAPIKey() string
GetAPIKey returns the value of APIKey.
func (*TokenHeader) GetRoles ¶
func (s *TokenHeader) GetRoles() []string
GetRoles returns the value of Roles.
func (*TokenHeader) SetAPIKey ¶
func (s *TokenHeader) SetAPIKey(val string)
SetAPIKey sets the value of APIKey.
func (*TokenHeader) SetRoles ¶
func (s *TokenHeader) SetRoles(val []string)
SetRoles sets the value of Roles.
type UnimplementedHandler ¶
type UnimplementedHandler struct{}
UnimplementedHandler is no-op Handler which returns http.ErrNotImplemented.
func (UnimplementedHandler) EventWebhook ¶
func (UnimplementedHandler) EventWebhook(ctx context.Context, req *Event) error
EventWebhook implements eventWebhook operation.
func (UnimplementedHandler) GetStatus ¶
func (UnimplementedHandler) GetStatus(ctx context.Context) error
GetStatus implements getStatus operation.
GET /status
func (UnimplementedHandler) SignedWebhook ¶
func (UnimplementedHandler) SignedWebhook(ctx context.Context, req *Event) error
SignedWebhook implements signedWebhook operation.
type WebhookClient ¶
type WebhookClient struct {
// contains filtered or unexported fields
}
WebhookClient implements webhook client.
func NewWebhookClient ¶
func NewWebhookClient(sec SecuritySource, opts ...ClientOption) (*WebhookClient, error)
NewWebhookClient initializes new WebhookClient.
func (*WebhookClient) EventWebhook ¶
EventWebhook invokes eventWebhook operation.
func (*WebhookClient) SignedWebhook ¶
SignedWebhook invokes signedWebhook operation.
type WebhookHandler ¶
type WebhookHandler interface {
// EventWebhook implements eventWebhook operation.
//
EventWebhook(ctx context.Context, req *Event) error
// SignedWebhook implements signedWebhook operation.
//
SignedWebhook(ctx context.Context, req *Event) error
}
WebhookHandler handles webhooks described by OpenAPI v3 specification.
type WebhookServer ¶
type WebhookServer struct {
// contains filtered or unexported fields
}
WebhookServer implements http server based on OpenAPI v3 specification and calls WebhookHandler to handle requests.
func NewWebhookServer ¶
func NewWebhookServer(h WebhookHandler, sec SecurityHandler, opts ...ServerOption) (*WebhookServer, error)
NewWebhookServer creates new WebhookServer.
func (*WebhookServer) Handle ¶
func (s *WebhookServer) Handle(webhookName string, w http.ResponseWriter, r *http.Request) bool
Handle handles webhook request.
Returns true if there is a webhook handler for given name and requested method.
func (*WebhookServer) Handler ¶
func (s *WebhookServer) Handler(webhookName string) http.Handler
Handler returns http.Handler for webhook.
Returns NotFound handler if spec doesn't contain webhook with given name.
Returned handler calls MethodNotAllowed handler if webhook doesn't define requested method.
Source Files
¶
- oas_cfg_gen.go
- oas_client_gen.go
- oas_handlers_gen.go
- oas_json_gen.go
- oas_labeler_gen.go
- oas_middleware_gen.go
- oas_operations_gen.go
- oas_request_decoders_gen.go
- oas_request_encoders_gen.go
- oas_response_decoders_gen.go
- oas_response_encoders_gen.go
- oas_router_gen.go
- oas_schemas_gen.go
- oas_security_gen.go
- oas_server_gen.go
- oas_unimplemented_gen.go
- oas_validators_gen.go