server

package
v0.5.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2024 License: Apache-2.0 Imports: 45 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HealthAPITag         = "health"
	UsersAPITag          = "users"
	ItemsAPITag          = "items"
	FeedbackAPITag       = "feedback"
	RecommendationAPITag = "recommendation"
	MeasurementsAPITag   = "measurements"
	DetractedAPITag      = "deprecated"
)

Variables

View Source
var (
	RestAPIRequestSecondsVec = promauto.NewHistogramVec(prometheus.HistogramOpts{
		Namespace: "gorse",
		Subsystem: "server",
		Name:      "rest_api_request_seconds",
	}, []string{"api"})
)

Functions

func BadRequest

func BadRequest(response *restful.Response, err error)

BadRequest returns a bad request error.

func Error added in v0.4.10

func Error(response *restful.Response, httpStatus int, responseError error)

func InternalServerError

func InternalServerError(response *restful.Response, err error)

InternalServerError returns a internal server error.

func Ok

func Ok(response *restful.Response, content interface{})

Ok sends the content as JSON to the client.

func PageNotFound

func PageNotFound(response *restful.Response, err error)

PageNotFound returns a not found error.

func ParseDuration added in v0.4.0

func ParseDuration(request *restful.Request, name string) (time.Duration, error)

ParseDuration parses duration from the query parameter.

func ParseInt

func ParseInt(request *restful.Request, name string, fallback int) (value int, err error)

ParseInt parses integers from the query parameter.

func ReadCategories

func ReadCategories(request *restful.Request) []string

func Text

func Text(response *restful.Response, content string)

Text returns a plain text.

Types

type Feedback

type Feedback struct {
	data.FeedbackKey
	Timestamp string
	Comment   string
}

Feedback is the data structure for the feedback but stores the timestamp using string.

func (Feedback) ToDataFeedback added in v0.4.1

func (f Feedback) ToDataFeedback() (data.Feedback, error)

type FeedbackIterator

type FeedbackIterator struct {
	Cursor   string
	Feedback []data.Feedback
}

FeedbackIterator is the iterator for feedback.

type HealthStatus added in v0.4.10

type HealthStatus struct {
	Ready               bool
	DataStoreError      error
	CacheStoreError     error
	DataStoreConnected  bool
	CacheStoreConnected bool
}

type Item

type Item struct {
	ItemId     string
	IsHidden   bool
	Categories []string
	Timestamp  string
	Labels     any
	Comment    string
}

Item is the data structure for the item but stores the timestamp using string.

type ItemIterator

type ItemIterator struct {
	Cursor string
	Items  []data.Item
}

ItemIterator is the iterator for items.

type LocalCache

type LocalCache struct {
	ServerName string
	// contains filtered or unexported fields
}

LocalCache is local cache for the server node.

func LoadLocalCache

func LoadLocalCache(path string) (*LocalCache, error)

LoadLocalCache loads local cache from a file.

func (*LocalCache) WriteLocalCache

func (s *LocalCache) WriteLocalCache() error

WriteLocalCache writes local cache to a file.

type Recommender added in v0.2.5

type Recommender func(ctx *recommendContext) error

type RestServer

type RestServer struct {
	*config.Settings

	HttpHost string
	HttpPort int

	DisableLog bool
	WebService *restful.WebService
	HttpServer *http.Server
}

RestServer implements a REST-ful API server.

func (*RestServer) AuthFilter added in v0.3.3

func (s *RestServer) AuthFilter(req *restful.Request, resp *restful.Response, chain *restful.FilterChain)

func (*RestServer) CreateWebService

func (s *RestServer) CreateWebService()

CreateWebService creates web service.

func (*RestServer) LogFilter added in v0.4.0

func (s *RestServer) LogFilter(req *restful.Request, resp *restful.Response, chain *restful.FilterChain)

func (*RestServer) MetricsFilter added in v0.4.1

func (s *RestServer) MetricsFilter(req *restful.Request, resp *restful.Response, chain *restful.FilterChain)

func (*RestServer) Recommend

func (s *RestServer) Recommend(ctx context.Context, response *restful.Response, userId string, categories []string, n int, recommenders ...Recommender) ([]string, error)

Recommend items to users. 1. If there are recommendations in cache, return cached recommendations. 2. If there are historical interactions of the users, return similar items. 3. Otherwise, return fallback recommendation (popular/latest).

func (*RestServer) RecommendCollaborative added in v0.2.8

func (s *RestServer) RecommendCollaborative(ctx *recommendContext) error

func (*RestServer) RecommendItemBased added in v0.2.8

func (s *RestServer) RecommendItemBased(ctx *recommendContext) error

func (*RestServer) RecommendLatest added in v0.3.1

func (s *RestServer) RecommendLatest(ctx *recommendContext) error

func (*RestServer) RecommendOffline added in v0.2.8

func (s *RestServer) RecommendOffline(ctx *recommendContext) error

func (*RestServer) RecommendPopular added in v0.3.1

func (s *RestServer) RecommendPopular(ctx *recommendContext) error

func (*RestServer) RecommendUserBased added in v0.2.8

func (s *RestServer) RecommendUserBased(ctx *recommendContext) error

func (*RestServer) SearchDocuments

func (s *RestServer) SearchDocuments(collection, subset string, categories []string,
	iteratee func(item cache.Score) (any, error),
	request *restful.Request, response *restful.Response,
)

func (*RestServer) StartHttpServer

func (s *RestServer) StartHttpServer(container *restful.Container)

StartHttpServer starts the REST-ful API server.

type Server

type Server struct {
	RestServer
	// contains filtered or unexported fields
}

Server manages states of a server node.

func NewServer

func NewServer(
	masterHost string,
	masterPort int,
	serverHost string,
	serverPort int,
	cacheFile string,
	tlsConfig *protocol.TLSConfig,
) *Server

NewServer creates a server node.

func (*Server) Serve

func (s *Server) Serve()

Serve starts a server node.

func (*Server) Shutdown added in v0.4.6

func (s *Server) Shutdown()

func (*Server) Sync

func (s *Server) Sync()

Sync this server to the master.

type Success

type Success struct {
	RowAffected int
}

Success is the returned data structure for data insert operations.

type UserIterator

type UserIterator struct {
	Cursor string
	Users  []data.User
}

Jump to

Keyboard shortcuts

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