Skip to content

cpageler93/api-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Easy HTTP Client for Swift

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages