APIClient
是一个易于使用的 Swift HTTP 客户端,基于 swift-server/async-http-client。
let githubClient = TestGitHubClient()
let repos = try githubClient.user.repositories(owner: "cpageler93").wait()
import Foundation
import NIO
import NIOHTTP1
import APIClient
// Define your clients routes
class TestGitHubClient: APIClient {
public var user: UserRoutes!
init() {
super.init(baseURL: URL(string: "https://api.github.com")!)
user = UserRoutes(apiHandler: self.handler)
}
}
// Define single routes
struct UserRoutes {
let apiHandler: APIRouteHandler
func repositories(owner: String) -> EventLoopFuture<[Repository]> {
return apiHandler.get("/users/\(owner)/repos", headers: apiHandler.githubHeader())
}
}
// Codable DTOs
struct Repository: Codable {
var id: Int
var name: String?
var fullName: String?
}
// Header Helper
private extension APIRouteHandler {
func githubHeader() -> HTTPHeaders {
return headers(["User-Agent": "Swift GitHub Client"])
}
}
请在 GitHub 上提交 issue,或通过邮件或 Twitter 联系我。
本项目采用 MIT 许可证授权。请参阅 LICENSE 文件。