api-client

master

Easy HTTP Client for Swift
cpageler93/api-client

APIClient

Swift Xcode License Twitter: @cpageler93

APIClient is an easy to use HTTP Client for Swift based on swift-server/async-http-client..

Usage Example (GitHub)

Call your APIs like this

let githubClient = TestGitHubClient()
let repos = try githubClient.user.repositories(owner: "cpageler93").wait()

GitHub API Client (simplified)

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"])
    }

}

Need Help?

Please submit an issue on GitHub or contact me via Mail or Twitter.

License

This project is licensed under the terms of the MIT license. See the LICENSE file.

Description

  • Swift Tools 5.2.0
View More Packages from this Author

Dependencies

Last updated: Mon Mar 18 2024 16:37:42 GMT-0900 (Hawaii-Aleutian Daylight Time)