SwiftyPSCore 是一个纯 Swift 编写的 PowerSchool API 客户端。其目标是通过处理身份验证和解码,简化与 PowerSchool 学生信息系统 API 的通信过程,使您能够专注于使用数据,而不是检索数据。
SwiftyPSCore 未经 PowerSchool 以任何方式认可、赞助或关联。 Swift 和 Swift 标志是 Apple Inc. 的商标。
在使用您应用程序中的 SwiftyPSCore 之前,您首先需要为您的 PowerSchool 服务器创建并安装一个 Plugin XML 文件。有关创建插件文件的信息可以在 PowerSchool 开发者支持 站点上找到。我们创建了一个示例插件 (PSDataAccessPlugin),您可以直接使用或根据需要进行修改。安装插件后,您将获得一个客户端 ID 和客户端密钥,用于与 PowerSchool 服务器进行身份验证。
要在 Swift Package Manager 包中包含 SwiftyPSCore,请将其添加到您的 Package.swift
文件中定义的 dependencies
属性中。例如
dependencies: [
.package(url: "https://github.com/dougonecent/SwiftyPSCore.git", from: "1.0.0-beta6")
]
设置您的基本 URL、客户端 ID 和客户端密钥的环境变量。然后,在您的代码中,获取环境变量并实例化一个客户端
if let baseURL = ProcessInfo.processInfo.environment["BASE_URL"],
let clientID = ProcessInfo.processInfo.environment["CLIENT_ID"],
let clientSecret = ProcessInfo.processInfo.environment["CLIENT_SECRET"] {
let client = SwiftyPSCore(baseURL, clientID: clientID, clientSecret: clientSecret)
}
现在您可以使用您的客户端来检索许多不同的资源。以下是一些示例:
if let sections = try await client.sectionsForSchool(schoolID) {
// sections: [Section]
} else {
// no sections found
}
if let students = try await client.studentsInDistrict() {
// students: [Student]
} else {
// no students found
}
PowerQueries 是一项允许创建自定义 API 端点的功能。 SwiftyPSCore 仅包含核心端点和 PowerSchool 直接提供的 PowerQueries。 要将其他核心 PowerQueries 添加到 SwiftyPSCore,您需要使用正确的 <access-request> 元素修改插件文件 (PSDataAccessPlugin)。
如果您有兴趣创建自己的自定义 PowerQueries,请参阅我们的配套包 SwiftyPSCustomQueries 和相应的插件 SwiftyPSCustomQueriesPlugin。
使用 PowerQuery 端点的工作方式与任何其他端点一样
if let enrollments = try await client.enrollmentsForSections([testSection.sectionDCID]) {
// enrollments: [StudentItem]
} else {
// error: Error
}
如果您有希望添加到 SwiftyPSCore 的功能或想法,请创建一个 issue,尽可能详细地解释您的想法。
如果您遇到错误,请创建一个 issue,尽可能详细地解释该错误。
PowerSchool API 提供了对大量信息的访问权限,但不幸的是,我们没有时间研究和实现每个端点。 我们已尽力使您可以尽可能轻松地扩展库并贡献您的更改。 添加新端点的基本步骤是
ModelTests.swift
文件,其中包含 JSON 响应的示例,以确保模型已正确解码。SwiftyPSCoreEndpoints.swift
文件,用于您的端点。 您可以简单地复制一个已存在的函数,然后更改 path
和模型类型以匹配预期的响应。请随时打开一个 pull request,其中包含您创建的任何其他端点。 我们希望尽可能多地涵盖端点。
我们努力保持代码尽可能简洁,并遵循标准的 Swift 编码约定,主要是 Swift API 设计指南 和 raywenderlich.com Swift 风格指南。 请在提交 pull request 之前,通过 SwiftLint 运行任何代码更改。
我们提供了针对沙箱 PowerSchool 服务器测试端点所需的文件,但您需要在您这边进行一些设置。
testing_parameters.sample.json
并将其命名为 testing_parameters.json
。 这是一个 JSON 文件,用于保存您将要测试的值,并在运行 EndpointTests
文件时进行解码。testing_parameters.json
文件添加到您的 Xcode 项目,包括在 SwiftyPSCoreTests
目标中。TestingParameters.swift
模型,以包含您想在测试中使用的任何其他参数。EndpointTests.swift
文件。SwiftyPSCore 在 MIT 许可证下发布。 有关更多信息,请参见 LICENSE。