【发布时间】:2010-11-25 16:53:29
【问题描述】:
我正在尝试构建一个基于 Rest 的服务,该服务具有广泛的体育数据(结果/赛程/球队/球员/联赛等)和相关统计数据的数据覆盖范围。
目前,想出一个合适的 URI 层次结构让我绕圈子。例如我可以实现...
1) i) 版本/体育/联赛/赛季/实体
1) ii) 版本/实体/sports/league/season
1) iii) 版本/体育/实体/联赛/赛季
一个例子让事情变得更加清晰(希望如此)......
进行查询,返回所有在 2010/2011 赛季参加英超联赛的足球运动员...
2) i) 1.1/football/premier_league/2010_2011/players
2) ii) a) 1.1/球员/football//premier_league/2010_2011
但并非所有运动(例如赛马 - 马和骑师、F1 等)都真正有球员,所以球员应该追随这项运动吗?
2) ii) b) 1.1/马/horse_racing/gold_cup/2010
2) iii) a) 1.1/football/players/premier_league/2010_2011
2) iii) b) 1.1/horse_racing/horses/gold_cup/2010
下面有更多示例 URI...
1.1/players/football/premier_league/2010_2011/teams/{id}
赛季回归球队?
1.1/球员/football/premier_league 回归英超联赛的球员?
1.1/结果/football/premier_league/2010_2011/teams/{id} 返回团队赛季的结果?
我也设想像...这样的查询
1.1/football/premier_league/2010_2011/11 月/teams/{id}/results
以月份作为参数来缩小结果集。
如果服务必须包括非体育实体,比如政治选举......就不会有球员......
1.1/election/2012/parties/{id}/结果
返回政党的结果
1.1/election/2012/parties/{id}/候选人 返回与该党相关的候选人
或 1.1/结果/election/2012/parties/{id} 返回政党的结果
1.1/候选人/election/2012/parties/{id} 返回与该党相关的候选人
关于哪个层次结构更好的建议?我试过搜索这个网站和谷歌,但我发现的例子只涵盖了琐碎的案例。我认为我喜欢示例 2-iii。
提前致谢。
【问题讨论】: