Vapor 推荐器

一个针对 Vapor 的推荐服务,使用 gorse 推荐系统

开始使用

将 Recommender 添加到你的 Package.swift

.package(url: "https://github.com/mborsten/recommender.git", from: "0.0.1-alpha1"),

用法

Recommender 使用 gorse 基于 User 的评分来推荐项目。默认配置期望 gorse 服务在 http://0.0.0.0:5050 可用。

你可以使用示例 docker-compose.yml 文件

cd docker
docker-compose build
docker-compose up

扩展你的 Item 模型

extension Item: RecommendableItem { }

现在你可以添加评分 (在已认证用户的上下文中)

let protected = routes.grouped(User.authenticator())
protected.post("items", ":itemId", "like") {
  let user = try request.auth.require(User.self)
          return request
              .recommend
              .insertFeedback(userId: try user.requireID().uuidString, itemId: request.parameters.get("itemId")!, rating: 5)
              .map { .ok }
}

要检索推荐项目列表

let protected = routes.grouped(User.authenticator())
protected.get("items", "recommended") {
  let user = try request.auth.require(User.self)
  return Item.recommended(req: request, userId: try user.requireID())
}

检索热门项目列表

routes.get("items", "popular") {
  return Item.popular(req: Request, number: 10)
}

待办事项

添加以下查询