SwiftyJamfPro 是一个纯 Swift 客户端,用于 Jamf Pro API。 目标是通过处理身份验证和解码,简化与 Jamf Pro API 通信的过程,使您可以专注于使用数据,而不是检索数据。
SwiftyJamfPro 未以任何方式获得 Jamf 的认可、赞助或附属。 Swift 和 Swift 徽标是 Apple Inc. 的商标。
要将 SwiftyJamfPro 包含在项目中,请将其添加到 Package.swift
文件中定义的 dependencies
属性中。 例如
dependencies: [
.package(url: "https://github.com/dougonecent/SwiftyJamfPro.git")
]
为您的基本 URL、用户名和密码设置环境变量。 然后,在您的代码中,获取环境变量并实例化一个客户端
if let baseURL = ProcessInfo.processInfo.environment["BASE_URL"],
let username = ProcessInfo.processInfo.environment["JAMF_USERNAME"],
let password = ProcessInfo.processInfo.environment["JAMF_PASSWORD"] {
let client = SwiftyJamfPro(baseURL, username: username, password: password)
}
作为第一步,为了满足一些直接的需求,我们只实现了一个端点:按 ID 查找移动设备。
if let device = try await client.classicDeviceForID(deviceID) {
// device
} else {
// no device found
}
如果您有希望添加到 SwiftyJamfPro 的功能或想法,请创建一个 issue,尽可能详细地解释您的想法。
如果您遇到错误,请创建一个 issue,尽可能详细地解释该错误。
Jamf Pro API 提供了对大量信息的访问,但不幸的是,我们没有时间研究和实现每个端点。 我们已尽力使您可以尽可能轻松地扩展库并贡献您的更改。 添加新端点的基本步骤是
ModelTests.swift
文件中,其中包含 JSON 响应的示例,以确保模型已正确解码。SwiftyJamfProEndpoints.swift
文件,用于您的端点。 您可以简单地复制一个已存在的函数,并更改 path
和模型类型以匹配预期的响应。请随意提交包含您创建的任何其他端点的 pull request。 我们希望尽可能多地覆盖端点。
我们努力保持代码尽可能简洁,并遵循标准的 Swift 编码约定,主要是 Swift API 设计指南 和 raywenderlich.com Swift 样式指南。 在提交 pull request 之前,请通过 SwiftLint 运行任何代码更改。
我们提供了测试端点所需的针对沙箱 Jamf Pro 服务器的文件,但是您需要在您这边进行一些设置。
testing_parameters.sample.json
并将其命名为 testing_parameters.json
。 这是一个 JSON 文件,用于保存您将要测试的值,并在运行 EndpointTests
文件时进行解码。testing_parameters.json
文件添加到您的 Xcode 项目,将其包含在 SwiftyJamfProTests
目标中。TestingParameters.swift
模型,以包含您想要在测试中使用的任何其他参数。EndpointTests.swift
文件中。SwiftyJamfPro 在 MIT 许可下发布。 有关更多信息,请参见 LICENSE。