这是API的基础,它需要用户和团队管理,包括找回密码等功能。该库应包含构建类似Github的用户管理SaaS平台所需的所有基本端点。
警告!: 目前该系统仅设计为与 PostgreSQL 配合使用!
[GET] /install
- 安装基础数据 (管理员用户,团队等。也可以在 uninstall
后运行以恢复所有表)[GET] /uninstall
- 删除所有表 (反向迁移)[GET] /database
- 显示 fluent 表的内容[GET] /auth
- 基于Header的认证 (basic HTTP)[POST] /auth
- 基于POST的认证[GET] /token
- 基于Header的 JWT Token 刷新[POST] /token
- 基于POST的 JWT Token 刷新[GET] /logout
- 注销并删除用户的所有活动Token[POST] /logout
- 注销并删除用户的所有活动Token (POST)[POST] /auth/password-check
- 检查密码有效性 (密码是否足够强)[POST] /auth/start-recovery
- 开始密码恢复[GET] /auth/input-recovery
- 基于HTML (可模版化) 的新密码输入[POST] /auth/finish-recovery
- 完成恢复 (从HTML或重定向)[GET] /info
- 获取服务器 URL, 名称和服务器图标的 URL[POST] /server/image
- 发布一个新的服务器图标 (将用于默认恢复HTML以及作为基于Web端点的favicon)[GET] /server/image/{icon_size}
- 获取特定大小的图标 (16, 64, 128, 192, 256 或 512px)[GET] /server/image
- 512px 大图标[DELETE] /server/image
- 删除服务器图标,将使用默认图标[GET] /server/favicon
- 16x16 px favicon (PNG 格式)[GET] /server/security
- 显示一个安全问题数组,准备在用户对话框中显示[GET] /server/commit
- 显示文件 ./Resources/commit.txt
的内容,该文件可以在自动部署期间编辑[GET] /users
- 获取团队中已连接用户列表 (可搜索)[GET] /users/global
- 全局搜索用户,省略个人信息,添加电子邮件 MD5 以用于 Gravatar[POST] /users
- 注册新用户[GET] /users/verify
- 验证注册的电子邮件 (注册电子邮件/链接已发送给用户)[POST] /users/disable
- 禁用或启用用户 (仅限管理员团队成员)[POST] /users/invite
- 邀请用户加入系统[GET] /users/input-invite
- 基于HTML (可模版化) 的新用户输入[POST] /users/finish-invitation
- 处理从上述表单接收的数据[GET] /teams
- 列出所有可用团队[GET] /teams/{team_id}
- 特定团队的详细信息[POST] /teams
- 创建团队[GET] /teams/check
- 检查团队标识符/名称是否可用[PUT] /teams/{team_id}
- 修改现有团队[GET] /teams/{team_id}/users
- 链接到特定团队的用户[POST] /teams/{team_id}/link
- 将用户链接到特定团队[POST] /teams/{team_id}/unlink
- 从特定团队取消链接用户[DELETE] /teams/{team_id}
- 删除团队[GET] /errors
- 打印输出 db 存档的错误日志[GET] /flush
- 刷新系统日志 (在 Docker 中运行应用程序时通常很有用)[GET] /ping
- 找出服务器是否存活[GET] /teapot
- 找出服务器是否是茶壶只需将以下行添加到您的 Package.swift
文件中。
.package(url: "https://github.com/LiveUI/ApiCore.git", .branch("master"))
有几种方法可以配置 ApiCore
。 最简单的方法是通过环境变量。
CONFIG_PATH // Path to a configuration file (default one is included `config.default.json`)
APICORE.JWT_SECRET // Secret passphrase to sign JWT tokens (mandatory in production)
配置文件如下所示
{
"general": {
"single_team": false
},
"auth": {
"allow_registrations": true,
"allow_invitations": true,
"registration_domains": []
},
"server": {
"name": "Booster!",
"url": "https://:8080",
"max_upload": 50
},
"jwt_secret": "secret",
"database": {
"host": "localhost",
"port": 5432,
"user": "boost",
"password": "aaaaaa",
"database": "boost",
"logging": false
},
"mail": {
"email": "admin@apicore",
"mailgun": {
"domain": "sandbox-domain.mailgun.org",
"key": "secret-key"
}
},
"storage": {
"local": {
"root": "/tmp/Boost"
},
"s3": {
"enabled": false,
"bucket": "my-boost-appstore",
"access_key": "my-access-key",
"secret_key": "my-secret-key",
"region": "us-east-1",
"security_token": null
}
}
}
每个值都可以通过多种格式的相应环境变量进行设置
1) apicore.jwt_secret
2) APICORE.JWT_SECRET
3) apicore_jwt_secret
4) APICORE_JWT_SECRET
要在应用程序中使用 ApiCore
,您的 configure.swift 文件可能如下所示
import Foundation
import Vapor
import DbCore
import MailCore
import ApiCore
public func configure(_ config: inout Config, _ env: inout Vapor.Environment, _ services: inout Services) throws {
print("Starting ApiCore by LiveUI")
sleep(10)
Env.print()
// Register routes
let router = EngineRouter.default()
try ApiCoreBase.boot(router: router)
services.register(router, as: Router.self)
// Go!
try ApiCoreBase.configure(&config, &env, &services)
}
main.swift
大概像这样
import ApiCoreApp
import Service
import Vapor
do {
var config = Config.default()
var env = try Environment.detect()
var services = Services.default()
// Setup ApiCore configure
try ApiCoreApp.configure(&config, &env, &services)
let app = try Application(
config: config,
environment: env,
services: services
)
try app.run()
} catch {
print("Top-level failure: \(error)")
}
待定
加入我们的 Slack,频道 #help-boost 以...获取帮助 :)
Boost 的核心包,这是一个完全开源的 Swift 企业 AppStore!
我们热爱 PR,我们对它们的需求永不满足...因此,如果您有有趣的改进、错误修复或新功能,请不要犹豫与我们联系。 如果您在开始开发之前不确定某些事情,可以随时通过我们的 Slack 联系我们的开发和产品团队。
Ondrej Rafaj (@rafiki270 在 Github, Twitter, LiveUI Slack 和 Vapor Slack)
ApiCore 在 Apache 2 许可下分发,可以在许可范围内自由共享或使用。此软件中使用的大多数第三方组件(如 Vapor 框架及其所有组件)都获得了 MIT 许可。所有使用的软件列表都列在存储库中。所有组件都在 dependencies 文件夹中可用。
有关更多信息,请参见 LICENSE 文件。