Swift 2の利点を最大限に活かすため、APIKitのデザインは大幅に刷新されました。型制約つきprotocol extensionsとHimotokiと組み合わせるとresponseFromObject(_:URLResponse:)にデフォルト実装を与えられるので、個々のリクエストの定義を楽にできます。以下はその例です。

// https://developer.github.com/v3/search/#search-repositories
struct SearchRepositoriesRequest: GitHubRequestType {
    enum Sort: String {
        case Stars = "stars"
        case Forks = "forks"
        case Updated = "updated"
    }

    let query: String
    let sort: Sort

    // MARK: RequestType
    typealias Response = SearchResponse<Repository>

    var method: HTTPMethod {
        return .GET
    }

    var path: String {
        return "/search/repositories"
    }

    var parameters: AnyObject? {
        return [
            "q": query,
            "sort": sort.rawValue,
        ]
    }
}

型制約つきprotocol extensionsは以下のように定義しています。

protocol GitHubRequestType: RequestType {

}

extension GitHubRequestType {
    var baseURL: NSURL {
        return NSURL(string: "https://api.github.com")!
    }
}

extension GitHubRequestType where Response: Decodable {
    func responseFromObject(object: AnyObject, URLResponse: NSHTTPURLResponse) throws -> Response {
        return try decodeValue(object)
    }
}

定義したリクエストを以下のように使用できます。

let request = SearchRepositoriesRequest(query: "APIKit", sort: .Stars)

Session.sendRequest(request) { result in
    switch result {
    case .Success(let response):
        for repository in response.items {
            print("\(repository.fullName) 🌟\(repository.stargazersCount)")
        }

    case .Failure(let error):
        print("error: \(error)")
    }
}

コードの全体はgistに置いてあります。

https://gist.github.com/ishkawa/59dd67042289ee4b5cab

追記 (2016/05/28)

APIKit 2とHimotoki 2向けにコードを更新しました。