APIClient is an easy to use HTTP Client for Swift based on 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"]) } }Please submit an issue on GitHub or contact me via Mail or Twitter.
This project is licensed under the terms of the MIT license. See the LICENSE file.