Project

General

Profile

Rest api with ruby » History » Revision 4

Revision 3 (J Doe, 2010-08-21 02:02) → Revision 4/15 (Eric Davis, 2010-10-21 06:26)

h1. Using the REST API with Ruby 

 Redmine REST API follows the Rails's RESTful conventions, so using it with "ActiveResource":http://api.rubyonrails.org/classes/ActiveResource/Base.html is pretty straightforward. 

 h2. ActiveResource 

 Here is a simple ruby script that demonstrates how to use the Redmine REST API: 

 <pre> 
 <code class="ruby"> 
 require 'rubygems' 
 require 'active_resource' 

 # Issue model on the client side 
 class Issue < ActiveResource::Base 
   self.site = 'http://redmine.server/' 
   self.user = 'foo' 
   self.password = 'bar' 
 end 

 # Retrieving issues 
 issues = Issue.find(:all) 
 puts issues.first.subject 

 # Retrieving an issue 
 issue = Issue.find(1) 
 puts issue.description 
 puts issue.author.name 

 # Creating an issue 
 issue = Issue.new( 
   :subject => 'REST API', 
   :assigned_to_id => 1, 
   :project_id => 1, 
   :custom_field_values => {'2' => 'Fixed'} 
 ) 
 if issue.save 
   puts issue.id 
 else 
   puts issue.errors.full_messages 
 end 

 # Updating an issue 
 issue = Issue.find(1) 
 issue.subject = 'REST API' 
 issue.save 

 # Deleting an issue 
 issue = Issue.find(1) 
 issue.destroy 
 </code> 
 </pre> 

 h2. RedmineClient gem 

 Eric Davis has created a gem that has ActiveResource wrappers for Redmine's API.    See his post "Redmine Client - Access the Redmine API in Ruby":http://redmineblog.com/articles/redmine-client-access-the-redmine-api-in-ruby/ for more details and an example.