【发布时间】:2011-01-11 00:53:29
【问题描述】:
TL;DR:制作 API。不同版本需要不同的字段。教我,聪明的人。
我目前正在尝试找出制作版本化 API 的最佳方法。也就是说,我希望有一个/api/v1/projects.json 的URL 将显示具有一堆字段的项目列表和api/v2/projects.json 以显示具有单独字段的项目列表。
我已经考虑这个问题大约 15 分钟了,这可能意味着一切都错了。目前我的app/models/project.rb 文件中有这个:
def self.api_fields
{
:v1 => ["name"],
:v2 => ["name", "tickets_count"]
}
end
然后我可以像这样在我的 API 控制器 (api/v1/projects_controller.rb) 中使用它:
def index
respond_with(Project.all(:select => Project.api_fields[:v1]))
end
这很好,可以按我的意愿工作,但可能有更好的方法。那是你的任务!与我分享您的 API 制作智慧。
如果您提出的解决方案还允许我对模型对象的实例使用方法,例如 Project 方法上的 tickets_count 方法,则可以加分。
【问题讨论】:
标签: ruby-on-rails