SwiftyJamfPro

MIT

SwiftyJamfPro 是一个纯 Swift 客户端,用于 Jamf Pro API。 目标是通过处理身份验证和解码,简化与 Jamf Pro API 通信的过程,使您可以专注于使用数据,而不是检索数据。

SwiftyJamfPro 未以任何方式获得 Jamf 的认可、赞助或附属。 Swift 和 Swift 徽标是 Apple Inc. 的商标。


目录


Swift Package Manager

要将 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 查找移动设备。

按 ID 查找移动设备 (Jamf Classic API)

if let device = try await client.classicDeviceForID(deviceID) {
    // device
} else {
    // no device found
}

贡献

如果您有希望添加到 SwiftyJamfPro 的功能或想法,请创建一个 issue,尽可能详细地解释您的想法。

如果您遇到错误,请创建一个 issue,尽可能详细地解释该错误。

Jamf Pro API 提供了对大量信息的访问,但不幸的是,我们没有时间研究和实现每个端点。 我们已尽力使您可以尽可能轻松地扩展库并贡献您的更改。 添加新端点的基本步骤是

  1. Fork 此存储库并将其克隆到您的开发机器。
  2. 基于 Jamf API 期望的 JSON 响应创建一个新模型。 您可以在 Jamf API 参考 站点上找到此信息。
  3. 将一个测试添加到 ModelTests.swift 文件中,其中包含 JSON 响应的示例,以确保模型已正确解码。
  4. 将一个新函数添加到 SwiftyJamfProEndpoints.swift 文件,用于您的端点。 您可以简单地复制一个已存在的函数,并更改 path 和模型类型以匹配预期的响应。

请随意提交包含您创建的任何其他端点的 pull request。 我们希望尽可能多地覆盖端点。

我们努力保持代码尽可能简洁,并遵循标准的 Swift 编码约定,主要是 Swift API 设计指南raywenderlich.com Swift 样式指南。 在提交 pull request 之前,请通过 SwiftLint 运行任何代码更改。

端点测试

我们提供了测试端点所需的针对沙箱 Jamf Pro 服务器的文件,但是您需要在您这边进行一些设置。

  1. 复制文件 testing_parameters.sample.json 并将其命名为 testing_parameters.json。 这是一个 JSON 文件,用于保存您将要测试的值,并在运行 EndpointTests 文件时进行解码。
  2. testing_parameters.json 文件添加到您的 Xcode 项目,将其包含在 SwiftyJamfProTests 目标中。
  3. 修改 TestingParameters.swift 模型,以包含您想要在测试中使用的任何其他参数。
  4. 将任何新的测试函数添加到 EndpointTests.swift 文件中。

许可

SwiftyJamfPro 在 MIT 许可下发布。 有关更多信息,请参见 LICENSE