api

package
v0.0.0-...-cdf09a4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2023 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WriterCtxKey  = "writer"
	RequestCtxKey = "request"
)

Variables

This section is empty.

Functions

func WithServerURL

func WithServerURL(ctx context.Context, u *url.URL) context.Context

WithServerURL sets context key to override server URL.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client implements OAS client.

func NewClient

func NewClient(serverURL string, opts ...ClientOption) (*Client, error)

NewClient initializes new Client defined by OAS.

func (*Client) ComplicatedParameterNameGet

func (c *Client) ComplicatedParameterNameGet(ctx context.Context, params ComplicatedParameterNameGetParams) error

ComplicatedParameterNameGet invokes GET /complicatedParameterName operation.

GET /complicatedParameterName

func (*Client) ContentParameters

func (c *Client) ContentParameters(ctx context.Context, params ContentParametersParams) (*ContentParameters, error)

ContentParameters invokes contentParameters operation.

GET /contentParameters/{path}

func (*Client) CookieParameter

func (c *Client) CookieParameter(ctx context.Context, params CookieParameterParams) (*Value, error)

CookieParameter invokes cookieParameter operation.

Test for cookie param.

GET /cookieParameter

func (*Client) HeaderParameter

func (c *Client) HeaderParameter(ctx context.Context, params HeaderParameterParams) (*Value, error)

HeaderParameter invokes headerParameter operation.

Test for header param.

GET /headerParameter

func (*Client) ObjectCookieParameter

func (c *Client) ObjectCookieParameter(ctx context.Context, params ObjectCookieParameterParams) (*OneLevelObject, error)

ObjectCookieParameter invokes objectCookieParameter operation.

GET /objectCookieParameter

func (*Client) ObjectQueryParameter

func (c *Client) ObjectQueryParameter(ctx context.Context, params ObjectQueryParameterParams) (*ObjectQueryParameterOK, error)

ObjectQueryParameter invokes objectQueryParameter operation.

GET /objectQueryParameter

func (*Client) PathParameter

func (c *Client) PathParameter(ctx context.Context, params PathParameterParams) (*Value, error)

PathParameter invokes pathParameter operation.

Test for path param.

GET /pathParameter/{value}

func (*Client) SameName

func (c *Client) SameName(ctx context.Context, params SameNameParams) error

SameName invokes sameName operation.

Parameters with different location, but with the same name.

GET /same_name/{param}

func (*Client) SimilarNames

func (c *Client) SimilarNames(ctx context.Context, params SimilarNamesParams) error

SimilarNames invokes similarNames operation.

Parameters with different location, but with similar names.

GET /similarNames

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 ComplicatedParameterNameGetOK

type ComplicatedParameterNameGetOK struct{}

ComplicatedParameterNameGetOK is response for ComplicatedParameterNameGet operation.

type ComplicatedParameterNameGetParams

type ComplicatedParameterNameGetParams struct {
	Eq       string
	Plus     string
	Question string
	And      string
	Percent  string
}

ComplicatedParameterNameGetParams is parameters of GET /complicatedParameterName operation.

type ContentParameters

type ContentParameters struct {
	Query  User `json:"query"`
	Path   User `json:"path"`
	Header User `json:"header"`
	Cookie User `json:"cookie"`
}

func (*ContentParameters) Decode

func (s *ContentParameters) Decode(d *jx.Decoder) error

Decode decodes ContentParameters from json.

func (*ContentParameters) Encode

func (s *ContentParameters) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*ContentParameters) GetCookie

func (s *ContentParameters) GetCookie() User

GetCookie returns the value of Cookie.

func (*ContentParameters) GetHeader

func (s *ContentParameters) GetHeader() User

GetHeader returns the value of Header.

func (*ContentParameters) GetPath

func (s *ContentParameters) GetPath() User

GetPath returns the value of Path.

func (*ContentParameters) GetQuery

func (s *ContentParameters) GetQuery() User

GetQuery returns the value of Query.

func (*ContentParameters) MarshalJSON

func (s *ContentParameters) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ContentParameters) SetCookie

func (s *ContentParameters) SetCookie(val User)

SetCookie sets the value of Cookie.

func (*ContentParameters) SetHeader

func (s *ContentParameters) SetHeader(val User)

SetHeader sets the value of Header.

func (*ContentParameters) SetPath

func (s *ContentParameters) SetPath(val User)

SetPath sets the value of Path.

func (*ContentParameters) SetQuery

func (s *ContentParameters) SetQuery(val User)

SetQuery sets the value of Query.

func (*ContentParameters) UnmarshalJSON

func (s *ContentParameters) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*ContentParameters) Validate

func (s *ContentParameters) Validate() error

type ContentParametersParams

type ContentParametersParams struct {
	Query   User
	Path    User
	XHeader User
	Cookie  User
}

ContentParametersParams is parameters of contentParameters operation.

type CookieParameterParams

type CookieParameterParams struct {
	Value string
}

CookieParameterParams is parameters of cookieParameter operation.

type ErrorHandler

type ErrorHandler = ogenerrors.ErrorHandler

ErrorHandler is error handler.

type Handler

type Handler interface {
	// ComplicatedParameterNameGet implements GET /complicatedParameterName operation.
	//
	// GET /complicatedParameterName
	ComplicatedParameterNameGet(ctx context.Context, params ComplicatedParameterNameGetParams) error
	// ContentParameters implements contentParameters operation.
	//
	// GET /contentParameters/{path}
	ContentParameters(ctx context.Context, params ContentParametersParams) (*ContentParameters, error)
	// CookieParameter implements cookieParameter operation.
	//
	// Test for cookie param.
	//
	// GET /cookieParameter
	CookieParameter(ctx context.Context, params CookieParameterParams) (*Value, error)
	// HeaderParameter implements headerParameter operation.
	//
	// Test for header param.
	//
	// GET /headerParameter
	HeaderParameter(ctx context.Context, params HeaderParameterParams) (*Value, error)
	// ObjectCookieParameter implements objectCookieParameter operation.
	//
	// GET /objectCookieParameter
	ObjectCookieParameter(ctx context.Context, params ObjectCookieParameterParams) (*OneLevelObject, error)
	// ObjectQueryParameter implements objectQueryParameter operation.
	//
	// GET /objectQueryParameter
	ObjectQueryParameter(ctx context.Context, params ObjectQueryParameterParams) (*ObjectQueryParameterOK, error)
	// PathParameter implements pathParameter operation.
	//
	// Test for path param.
	//
	// GET /pathParameter/{value}
	PathParameter(ctx context.Context, params PathParameterParams) (*Value, error)
	// SameName implements sameName operation.
	//
	// Parameters with different location, but with the same name.
	//
	// GET /same_name/{param}
	SameName(ctx context.Context, params SameNameParams) error
	// SimilarNames implements similarNames operation.
	//
	// Parameters with different location, but with similar names.
	//
	// GET /similarNames
	SimilarNames(ctx context.Context, params SimilarNamesParams) error
}

Handler handles operations described by OpenAPI v3 specification.

type HeaderParameterParams

type HeaderParameterParams struct {
	XValue string
}

HeaderParameterParams is parameters of headerParameter operation.

type Invoker

type Invoker interface {
	// ComplicatedParameterNameGet invokes GET /complicatedParameterName operation.
	//
	// GET /complicatedParameterName
	ComplicatedParameterNameGet(ctx context.Context, params ComplicatedParameterNameGetParams) error
	// ContentParameters invokes contentParameters operation.
	//
	// GET /contentParameters/{path}
	ContentParameters(ctx context.Context, params ContentParametersParams) (*ContentParameters, error)
	// CookieParameter invokes cookieParameter operation.
	//
	// Test for cookie param.
	//
	// GET /cookieParameter
	CookieParameter(ctx context.Context, params CookieParameterParams) (*Value, error)
	// HeaderParameter invokes headerParameter operation.
	//
	// Test for header param.
	//
	// GET /headerParameter
	HeaderParameter(ctx context.Context, params HeaderParameterParams) (*Value, error)
	// ObjectCookieParameter invokes objectCookieParameter operation.
	//
	// GET /objectCookieParameter
	ObjectCookieParameter(ctx context.Context, params ObjectCookieParameterParams) (*OneLevelObject, error)
	// ObjectQueryParameter invokes objectQueryParameter operation.
	//
	// GET /objectQueryParameter
	ObjectQueryParameter(ctx context.Context, params ObjectQueryParameterParams) (*ObjectQueryParameterOK, error)
	// PathParameter invokes pathParameter operation.
	//
	// Test for path param.
	//
	// GET /pathParameter/{value}
	PathParameter(ctx context.Context, params PathParameterParams) (*Value, error)
	// SameName invokes sameName operation.
	//
	// Parameters with different location, but with the same name.
	//
	// GET /same_name/{param}
	SameName(ctx context.Context, params SameNameParams) error
	// SimilarNames invokes similarNames operation.
	//
	// Parameters with different location, but with similar names.
	//
	// GET /similarNames
	SimilarNames(ctx context.Context, params SimilarNamesParams) error
}

Invoker invokes operations described by OpenAPI v3 specification.

type Middleware

type Middleware = middleware.Middleware

Middleware is middleware type.

type ObjectCookieParameterParams

type ObjectCookieParameterParams struct {
	Value OneLevelObject
}

ObjectCookieParameterParams is parameters of objectCookieParameter operation.

type ObjectQueryParameterOK

type ObjectQueryParameterOK struct {
	Style string         `json:"style"`
	Value OneLevelObject `json:"value"`
}

func (*ObjectQueryParameterOK) Decode

func (s *ObjectQueryParameterOK) Decode(d *jx.Decoder) error

Decode decodes ObjectQueryParameterOK from json.

func (*ObjectQueryParameterOK) Encode

func (s *ObjectQueryParameterOK) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*ObjectQueryParameterOK) GetStyle

func (s *ObjectQueryParameterOK) GetStyle() string

GetStyle returns the value of Style.

func (*ObjectQueryParameterOK) GetValue

func (s *ObjectQueryParameterOK) GetValue() OneLevelObject

GetValue returns the value of Value.

func (*ObjectQueryParameterOK) MarshalJSON

func (s *ObjectQueryParameterOK) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*ObjectQueryParameterOK) SetStyle

func (s *ObjectQueryParameterOK) SetStyle(val string)

SetStyle sets the value of Style.

func (*ObjectQueryParameterOK) SetValue

func (s *ObjectQueryParameterOK) SetValue(val OneLevelObject)

SetValue sets the value of Value.

func (*ObjectQueryParameterOK) UnmarshalJSON

func (s *ObjectQueryParameterOK) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type ObjectQueryParameterParams

type ObjectQueryParameterParams struct {
	FormObject OptOneLevelObject
	DeepObject OptOneLevelObject
}

ObjectQueryParameterParams is parameters of objectQueryParameter operation.

type OneLevelObject

type OneLevelObject struct {
	Min    int    `json:"min"`
	Max    int    `json:"max"`
	Filter string `json:"filter"`
}

Ref: #/components/schemas/OneLevelObject

func (*OneLevelObject) Decode

func (s *OneLevelObject) Decode(d *jx.Decoder) error

Decode decodes OneLevelObject from json.

func (*OneLevelObject) DecodeURI

func (s *OneLevelObject) DecodeURI(d uri.Decoder) error

DecodeURI decodes OneLevelObject from URI form.

func (*OneLevelObject) Encode

func (s *OneLevelObject) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*OneLevelObject) EncodeURI

func (s *OneLevelObject) EncodeURI(e uri.Encoder) error

EncodeURI encodes OneLevelObject as URI form.

func (*OneLevelObject) GetFilter

func (s *OneLevelObject) GetFilter() string

GetFilter returns the value of Filter.

func (*OneLevelObject) GetMax

func (s *OneLevelObject) GetMax() int

GetMax returns the value of Max.

func (*OneLevelObject) GetMin

func (s *OneLevelObject) GetMin() int

GetMin returns the value of Min.

func (*OneLevelObject) MarshalJSON

func (s *OneLevelObject) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*OneLevelObject) SetFilter

func (s *OneLevelObject) SetFilter(val string)

SetFilter sets the value of Filter.

func (*OneLevelObject) SetMax

func (s *OneLevelObject) SetMax(val int)

SetMax sets the value of Max.

func (*OneLevelObject) SetMin

func (s *OneLevelObject) SetMin(val int)

SetMin sets the value of Min.

func (*OneLevelObject) UnmarshalJSON

func (s *OneLevelObject) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type OptOneLevelObject

type OptOneLevelObject struct {
	Value OneLevelObject
	Set   bool
}

OptOneLevelObject is optional OneLevelObject.

func NewOptOneLevelObject

func NewOptOneLevelObject(v OneLevelObject) OptOneLevelObject

NewOptOneLevelObject returns new OptOneLevelObject with value set to v.

func (*OptOneLevelObject) Decode

func (o *OptOneLevelObject) Decode(d *jx.Decoder) error

Decode decodes OneLevelObject from json.

func (OptOneLevelObject) Encode

func (o OptOneLevelObject) Encode(e *jx.Encoder)

Encode encodes OneLevelObject as json.

func (OptOneLevelObject) Get

func (o OptOneLevelObject) Get() (v OneLevelObject, ok bool)

Get returns value and boolean that denotes whether value was set.

func (OptOneLevelObject) IsSet

func (o OptOneLevelObject) IsSet() bool

IsSet returns true if OptOneLevelObject was set.

func (OptOneLevelObject) MarshalJSON

func (s OptOneLevelObject) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (OptOneLevelObject) Or

Or returns value if set, or given parameter if does not.

func (*OptOneLevelObject) Reset

func (o *OptOneLevelObject) Reset()

Reset unsets value.

func (*OptOneLevelObject) SetTo

func (o *OptOneLevelObject) SetTo(v OneLevelObject)

SetTo sets value to v.

func (*OptOneLevelObject) UnmarshalJSON

func (s *OptOneLevelObject) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

type Option

type Option interface {
	ServerOption
	ClientOption
}

Option is config option.

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 PathParameterParams

type PathParameterParams struct {
	Value string
}

PathParameterParams is parameters of pathParameter operation.

type Route

type Route struct {
	// contains filtered or unexported fields
}

Route is route object.

func (Route) Args

func (r Route) Args() []string

Args returns parsed arguments.

func (Route) Name

func (r Route) Name() string

Name returns ogen operation name.

It is guaranteed to be unique and not empty.

func (Route) OperationID

func (r Route) OperationID() string

OperationID returns OpenAPI operationId.

func (Route) PathPattern

func (r Route) PathPattern() string

PathPattern returns OpenAPI path.

func (Route) Summary

func (r Route) Summary() string

Summary returns OpenAPI summary.

type SameNameOK

type SameNameOK struct{}

SameNameOK is response for SameName operation.

type SameNameParams

type SameNameParams struct {
	PathParam  string
	QueryParam string
}

SameNameParams is parameters of sameName operation.

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, opts ...ServerOption) (*Server, error)

NewServer creates new Server.

func (*Server) FindPath

func (s *Server) FindPath(method string, u *url.URL) (r Route, _ bool)

FindPath finds Route for given method and URL.

func (*Server) FindRoute

func (s *Server) FindRoute(method, path string) (Route, bool)

FindRoute finds Route for given method and path.

Note: this method does not unescape path or handle reserved characters in path properly. Use FindPath instead.

func (*Server) ServeHTTP

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP serves http request as defined by OpenAPI v3 specification, calling handler that matches the path or returning not found error.

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 SimilarNamesOK

type SimilarNamesOK struct{}

SimilarNamesOK is response for SimilarNames operation.

type SimilarNamesParams

type SimilarNamesParams struct {
	QueryXParam  string
	HeaderXParam string
}

SimilarNamesParams is parameters of similarNames operation.

type UnimplementedHandler

type UnimplementedHandler struct{}

UnimplementedHandler is no-op Handler which returns http.ErrNotImplemented.

func (UnimplementedHandler) ComplicatedParameterNameGet

func (UnimplementedHandler) ComplicatedParameterNameGet(ctx context.Context, params ComplicatedParameterNameGetParams) error

ComplicatedParameterNameGet implements GET /complicatedParameterName operation.

GET /complicatedParameterName

func (UnimplementedHandler) ContentParameters

func (UnimplementedHandler) ContentParameters(ctx context.Context, params ContentParametersParams) (r *ContentParameters, _ error)

ContentParameters implements contentParameters operation.

GET /contentParameters/{path}

func (UnimplementedHandler) CookieParameter

func (UnimplementedHandler) CookieParameter(ctx context.Context, params CookieParameterParams) (r *Value, _ error)

CookieParameter implements cookieParameter operation.

Test for cookie param.

GET /cookieParameter

func (UnimplementedHandler) HeaderParameter

func (UnimplementedHandler) HeaderParameter(ctx context.Context, params HeaderParameterParams) (r *Value, _ error)

HeaderParameter implements headerParameter operation.

Test for header param.

GET /headerParameter

func (UnimplementedHandler) ObjectCookieParameter

func (UnimplementedHandler) ObjectCookieParameter(ctx context.Context, params ObjectCookieParameterParams) (r *OneLevelObject, _ error)

ObjectCookieParameter implements objectCookieParameter operation.

GET /objectCookieParameter

func (UnimplementedHandler) ObjectQueryParameter

ObjectQueryParameter implements objectQueryParameter operation.

GET /objectQueryParameter

func (UnimplementedHandler) PathParameter

func (UnimplementedHandler) PathParameter(ctx context.Context, params PathParameterParams) (r *Value, _ error)

PathParameter implements pathParameter operation.

Test for path param.

GET /pathParameter/{value}

func (UnimplementedHandler) SameName

SameName implements sameName operation.

Parameters with different location, but with the same name.

GET /same_name/{param}

func (UnimplementedHandler) SimilarNames

func (UnimplementedHandler) SimilarNames(ctx context.Context, params SimilarNamesParams) error

SimilarNames implements similarNames operation.

Parameters with different location, but with similar names.

GET /similarNames

type User

type User struct {
	ID       int      `json:"id"`
	Username string   `json:"username"`
	Role     UserRole `json:"role"`
	Friends  []User   `json:"friends"`
}

Ref: #/components/schemas/User

func (*User) Decode

func (s *User) Decode(d *jx.Decoder) error

Decode decodes User from json.

func (*User) Encode

func (s *User) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*User) GetFriends

func (s *User) GetFriends() []User

GetFriends returns the value of Friends.

func (*User) GetID

func (s *User) GetID() int

GetID returns the value of ID.

func (*User) GetRole

func (s *User) GetRole() UserRole

GetRole returns the value of Role.

func (*User) GetUsername

func (s *User) GetUsername() string

GetUsername returns the value of Username.

func (*User) MarshalJSON

func (s *User) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*User) SetFriends

func (s *User) SetFriends(val []User)

SetFriends sets the value of Friends.

func (*User) SetID

func (s *User) SetID(val int)

SetID sets the value of ID.

func (*User) SetRole

func (s *User) SetRole(val UserRole)

SetRole sets the value of Role.

func (*User) SetUsername

func (s *User) SetUsername(val string)

SetUsername sets the value of Username.

func (*User) UnmarshalJSON

func (s *User) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*User) Validate

func (s *User) Validate() error

type UserRole

type UserRole string
const (
	UserRoleAdmin UserRole = "admin"
	UserRoleUser  UserRole = "user"
	UserRoleBot   UserRole = "bot"
)

func (UserRole) AllValues

func (UserRole) AllValues() []UserRole

AllValues returns all UserRole values.

func (*UserRole) Decode

func (s *UserRole) Decode(d *jx.Decoder) error

Decode decodes UserRole from json.

func (UserRole) Encode

func (s UserRole) Encode(e *jx.Encoder)

Encode encodes UserRole as json.

func (UserRole) MarshalJSON

func (s UserRole) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (UserRole) MarshalText

func (s UserRole) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*UserRole) UnmarshalJSON

func (s *UserRole) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

func (*UserRole) UnmarshalText

func (s *UserRole) UnmarshalText(data []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

func (UserRole) Validate

func (s UserRole) Validate() error

type Value

type Value struct {
	Value string `json:"value"`
}

Ref: #/components/schemas/Value

func (*Value) Decode

func (s *Value) Decode(d *jx.Decoder) error

Decode decodes Value from json.

func (*Value) Encode

func (s *Value) Encode(e *jx.Encoder)

Encode implements json.Marshaler.

func (*Value) GetValue

func (s *Value) GetValue() string

GetValue returns the value of Value.

func (*Value) MarshalJSON

func (s *Value) MarshalJSON() ([]byte, error)

MarshalJSON implements stdjson.Marshaler.

func (*Value) SetValue

func (s *Value) SetValue(val string)

SetValue sets the value of Value.

func (*Value) UnmarshalJSON

func (s *Value) UnmarshalJSON(data []byte) error

UnmarshalJSON implements stdjson.Unmarshaler.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL