Makes some attributes optional in API response to get faster/lightweight responses.

These attributes are not required for common uses case (eg. updating an object). They can be requested in the reponse using the 'include' parameter. Example GET /issues/1.xml?include=journals. The list of attributes that can be included in responses will be documented in the wiki.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4486 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2010-12-11 10:19:11 +00:00
parent 10ba08ce13
commit 5f57bceabb
5 changed files with 19 additions and 9 deletions
+4 -4
View File
@@ -25,13 +25,13 @@ api.issue do
api.created_on @issue.created_on
api.updated_on @issue.updated_on
render_api_issue_children(@issue, api)
render_api_issue_children(@issue, api) if include_in_api_response?('children')
api.array :relations do
@issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
end
end
end if include_in_api_response?('relations')
api.array :changesets do
@issue.changesets.each do |changeset|
@@ -41,7 +41,7 @@ api.issue do
api.committed_on changeset.committed_on
end
end
end if User.current.allowed_to?(:view_changesets, @project) && @issue.changesets.any?
end if include_in_api_response?('changesets') && User.current.allowed_to?(:view_changesets, @project)
api.array :journals do
@issue.journals.each do |journal|
@@ -58,5 +58,5 @@ api.issue do
end
end
end
end unless @issue.journals.empty?
end if include_in_api_response?('journals')
end