###一个用RxSwift实现的GitHubAPI库
仓库地址 https://github.com/FengDeng/RxGitHubAPI
这个库还未完善,由于最近工作比较忙,刚刚实现小部分的功能。
也希望大家pull request 来完善它
目前实现的功能:
- 登录
- 获取一个用户信息(自己的或者别人的)
- 获取这个用户的其他信息,请看 #YYUser
- star,unStar,checkStar等等对仓库的一些行为,请看#YYRepository
- search Repos 和 search Users
#Start
- 设置
RxGitHubUserName
RxGitHubPassword
获取 login user
static var yy_user : Requestable<YYUser>
- 订阅
Requestable<YYUser>
就可以获取到你登录的用户了。
#Search
搜索仓库
RxGitHubAPI.searchRepos(q:String)
订阅其获取YYRepository实例数组
搜索用户
RxGitHubAPI.searchUsers(q:String)
订阅其获取YYUser实例数组
#YYUser
通过登录获取YYUser实例,先实现前面start方法
RxGitHubAPI.yy_user
订阅其获取YYUser实例
通过username获取YYUser实例
RxGitHubAPI.yy_user(username:)
订阅其获取YYUser实例
使用这个YYUser实例,获取更多信息
list followers
public var yy_followers:Pageable<[YYUser]
list followings
public var yy_followings : Pageable<[YYUser]>
list gists
public var yy_gist : Pageable<[YYGist]>
list starred repo
public var yy_starred : Pageable<[YYRepository]>
list subscriptions repo
public var yy_subscriptions : Pageable<[YYRepository]>
list subscriptions orgs
public var yy_organizations : Pageable<[YYOrganization]>
list user repo
public var yy_repos : Pageable<[YYRepository]>
//fix me
//public var yy_events
//public var yy_received_events
//action needs Auth
follow this user
public var action_follow : Actionable<Bool>
unFollow this user
public var action_unFollow : Actionable<Bool>
check you are following this user
public var action_checkFollow : Actionable<Bool>
#YYRepository
获取到YYRepository实例,你可以
/**
star this repo
- returns: return value description
*/
public var action_star : Actionable<Bool>{
return Actionable(mothod: .PUT, url: self.action_star_url.yy_clear(),headers:AuthHeader())
}
/**
unStar this repo
- returns: return value description
*/
public var action_unStar : Actionable<Bool>{
return Actionable(mothod: .DELETE, url: self.action_star_url.yy_clear(),headers:AuthHeader())
}
/**
check you are starring this repo
- returns:
*/
public var action_checkStar : Actionable<Bool>{
return Actionable(mothod: .GET, url: self.action_star_url.yy_clear(),headers:AuthHeader())
}
/**
watch this repo
- returns: return value description
*/
public var action_watch : Actionable<Bool>{
return Actionable(mothod: .PUT, url: self.action_watch_url.yy_clear(),headers:AuthHeader())
}
/**
unWatch this repo
- returns: return value description
*/
public var action_unWatch : Actionable<Bool>{
return Actionable(mothod: .DELETE, url: self.action_watch_url.yy_clear(),headers:AuthHeader())
}
/**
check you are watching this repo
- returns:
*/
public var action_checkWatch : Actionable<Bool>{
return Actionable(mothod: .GET, url: self.action_watch_url.yy_clear(),headers:AuthHeader())
}