プロジェクト

全般

プロフィール

Rest api with ruby » 履歴 » バージョン 1

Mitsuyoshi Yoshida, 2011/11/13 12:39

1 1 Mitsuyoshi Yoshida
redmine.org の "Rest_api_with_ruby":http://www.redmine.org/projects/redmine/wiki/Rest_api_with_ruby の日本語訳です。
2
3
h1. Ruby での REST API の使用法
4
5
Redmine の REST API は Rails の RESTful の仕様にあわせて作成されています。
6
そのため、 "ActiveResource":http://api.rubyonrails.org/classes/ActiveResource/Base.html を使用するのが一番素直な方法でしょう。
7
8
h2. ActiveResource
9
10
以下は Redmine REST API を使った簡単な ruby スクリプトです。
11
12
<pre>
13
<code class="ruby">
14
require 'rubygems'
15
require 'active_resource'
16
17
# クライアント側でのチケットのモデル
18
class Issue < ActiveResource::Base
19
  self.site = 'http://redmine.server/'
20
  self.user = 'foo'
21
  self.password = 'bar'
22
end
23
24
# チケットの取得
25
issues = Issue.find(:all)
26
puts issues.first.subject
27
28
# ID で指定したチケットを取得
29
issue = Issue.find(1)
30
puts issue.description
31
puts issue.author.name
32
33
# チケットの作成
34
issue = Issue.new(
35
  :subject => 'REST API',
36
  :assigned_to_id => 1,
37
  :project_id => 1,
38
  :custom_field_values => {'2' => 'Fixed'}
39
)
40
if issue.save
41
  puts issue.id
42
else
43
  puts issue.errors.full_messages
44
end
45
46
# チケットの更新
47
issue = Issue.find(1)
48
issue.subject = 'REST API'
49
issue.save
50
51
# チケットの削除
52
issue = Issue.find(1)
53
issue.destroy
54
</code>
55
</pre>
56
57
h2. RedmineClient gem
58
59
Eric Davis によって Redmine API 用に ActiveResource をラップしたものが gem で公開されています。
60
詳しい情報と使用例は以下のチケットを見て下さい。
61
62
* "Redmine Client - Access the Redmine API in Ruby":http://redmineblog.com/articles/redmine-client-access-the-redmine-api-in-ruby/