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/ |