APIClient

Swift Xcode License Twitter: @cpageler93

APIClient 是一个易于使用的 Swift HTTP 客户端,基于 swift-server/async-http-client

使用示例 (GitHub)

像这样调用您的 API

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

GitHub API 客户端(简化版)

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 文件。