ApiCore

Slack Jenkins Platforms Swift Package Manager Swift 4 Vapor 3

这是API的基础,它需要用户和团队管理,包括找回密码等功能。该库应包含构建类似Github的用户管理SaaS平台所需的所有基本端点。

警告!: 目前该系统仅设计为与 PostgreSQL 配合使用!

可用端点

安装 (仅在 DEBUG 模式下可用!)

认证

服务器

用户

团队

其他

安装

只需将以下行添加到您的 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 集成到 Vapor 3 应用程序中

要在应用程序中使用 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 AppStore

Boost 的核心包,这是一个完全开源的 Swift 企业 AppStore!

其他核心包

代码贡献

我们热爱 PR,我们对它们的需求永不满足...因此,如果您有有趣的改进、错误修复或新功能,请不要犹豫与我们联系。 如果您在开始开发之前不确定某些事情,可以随时通过我们的 Slack 联系我们的开发和产品团队。

作者

Ondrej Rafaj (@rafiki270 在 Github, Twitter, LiveUI SlackVapor Slack)

许可证

ApiCore 在 Apache 2 许可下分发,可以在许可范围内自由共享或使用。此软件中使用的大多数第三方组件(如 Vapor 框架及其所有组件)都获得了 MIT 许可。所有使用的软件列表都列在存储库中。所有组件都在 dependencies 文件夹中可用。

有关更多信息,请参见 LICENSE 文件。