我们有许多不同的api与不同的主机。我想知道url主机映射有一个简单(最好)的方法吗?
我可以使用字典或guava(如Multimap)对host-urls进行一对多的映射。
如下
["www.google.com":["/path1","/path2"]]
["www.bing.com":["/path1","/path2"]]
Net.get(/path1)
但反向进展无法保证主持人的独特性
我现在正在使用
struct GoogleUrls{
static let URL1 = "/path1"
static let URL2 = "/path2"
}
struct BingUrls{
static let URL1 = "/path1"
static let URL2 = "/path2"
}
class GoogleApi{
let host = "www.google.com"
func get(path:String){
// Net.get(path,host)
}
}
class BingApi{
let host = "www.bing.com"
func get(path:String){
// Net.get(path,host)
}
}
class Api1Google:GoogleApi{
func callUrl1(){
super.get(GoogleUrls.URL1)
}
func callUrl2(){
super.get(GoogleUrls.URL2)
}
}
class Api1Bing:BingApi{
func callUrl1(){
super.get(BingUrls.URL1)
}
func callUrl2(){
super.get(BingUrls.URL2)
}
}
我不想在这里手动分配主机,是否有更优雅的方式(使用属性?)?
答案 0 :(得分:0)
如果您使用的是Objective-C,我可以查看SwiftConfigManager或CSConfigurationManager。我的团队成员之一刚刚编写了swift解决方案,因为我们在不同的配置中有不同的基本URL,并且能够使用不同的环境配置创建构建方案。
在过去的5年中,我们在许多项目上成功使用了CSConfigurationManager,而不仅仅是网址,包括应用程序设置,颜色,排序过滤器,甚至是ui配置标志,以启用/禁用不同构建方案中的组件。 / p>