Users / Projects REST APIについて

719 views
Skip to first unread message

Tetsuro KITAJIMA

unread,
Feb 6, 2013, 12:17:51 AM2/6/13
to redmine-...@googlegroups.com
To: redmine Users MLのみなさま

北島です。いつもお世話になっております。

以前お伺いしたLDAP連携アプリケーションですが、Redmine REST APIを使って再実装することになり、現在手がけています。

やっている途中で、いくつか問題が浮上しました。
答えをお持ちの方がいらっしゃいましたら、いろいろ教えていただければ幸いです。

なお、APIを叩く側のrubyの環境は以下の通りです。
OS: Ubuntu 12.10 64-bit
Ruby: 1.9.3p194(rev 35410)
gem: 1.8.23
gems:
actionmailer (3.2.11)
actionpack (3.2.11)
activeldap (3.2.2)
activemodel (3.2.11, 3.2.8)
activerecord (3.2.11)
activeresource (3.2.11)
activesupport (3.2.11, 3.2.8)
arel (3.0.2)
builder (3.1.4, 3.0.4, 3.0.0)
bundler (1.2.1)
coderay (1.0.8)
columnize (0.3.6)
crack (0.3.1)
cucumber (1.2.1)
diff-lcs (1.1.3)
erubis (2.7.0)
fast_gettext (0.6.11)
flay (1.4.3)
flog (2.5.3)
gettext (2.3.3)
gettext_i18n_rails (0.7.1)
gherkin (2.11.5)
hike (1.2.1)
hoe (3.1.0)
httparty (0.9.0)
i18n (0.6.1)
journey (1.0.4)
jquery-rails (2.0.3)
json (1.7.6, 1.7.5)
locale (2.0.8)
mail (2.4.4)
mime-types (1.19)
multi_json (1.5.0, 1.3.6)
multi_xml (0.5.1)
mysql2 (0.3.11)
neography (1.0.1)
net-ldap (0.3.1)
os (0.9.6)
pg (0.14.1)
polyglot (0.3.3)
rack (1.4.3)
rack-cache (1.2)
rack-openid (1.3.1)
rack-ssl (1.3.2)
rack-test (0.6.2)
rails (3.2.11)
railties (3.2.11)
rake (10.0.3, 0.9.2.2)
rbx-require-relative (0.0.9)
rdoc (3.12)
rdoc-data (3.12)
redcarpet (2.2.2)
reek (1.2.12)
rest-client (1.6.7)
ripper_ruby_parser (0.0.8)
rmagick (2.13.1)
roodi (2.1.0)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
ruby-net-ldap (0.0.4)
ruby-openid (2.1.8)
ruby2ruby (1.3.1, 1.2.5)
ruby_parser (2.3.1)
rubyzip (0.9.9)
sexp_processor (4.1.0, 3.2.0)
sprockets (2.2.2)
sqlite3 (1.3.6)
sqlite3-ruby (1.3.3)
term-ansicolor (1.0.7)
test-unit (2.5.2, 1.2.3)
thor (0.16.0)
tilt (1.3.3)
treetop (1.4.12)
tzinfo (0.3.35)
yard (0.8.3)

叩いている先のredmineは以下のような環境です。

Environment:
Redmine version 2.2.2.stable.11324
Ruby version 1.9.3 (x86_64-linux)
Rails version 3.2.11
Environment production
Database adapter Mysql2
Redmine plugins:
no plugin installed


以下問題:

(0-1) 自力解決済み:

http://www.redmine.org/projects/redmine/wiki/Rest_api_with_ruby
にあるソースコードは、最近のActiveResouceでは動かないようです。

class Issue < ActiveResource::Base
self.site = 'http://redmine.server/'
self.user = 'foo'
self.password = 'bar'
+ self.format = :xml
end

で動くようです。

(0-2) 自力未解決
ActiveResourceを使う実装を前提として、API Keyを渡すにはどうすればよいのでしょうか?
適当にself.key = APIKEY とかやってみましたが、うまく動かない(ActiveResource::Baseにkey変数がない?)模様です。

(1) User APIの問題

LDAPを1つ以上設定して、auth_source_idが意味のある値を示すような環境で

http://www.redmine.org/projects/redmine/wiki/Rest_Users
ではPOST Parameterとしてauth_source_idを受け付けることになっていますが、ActiveResourceで

user = User.new(
:login => member.login,
:firstname => member.firstname,
:lastname => member.lastname,
:mail => member.mail,
:auth_source_id => member.auth_source_id
)

というコードを書いても、 :auth_source_id などというメソッドはない?などと怒られます。
GETでuserを取ってきてもXMLにauth_source_idが含まれないのが原因では?と予想しております。

(2) Project APIの設定

GETのresponseにはparent
projectの情報が含まれるようですが、POSTで新規プロジェクトを作るときに(ActiveResource経由を前提として)Parent
Projectの設定は無理でしょうか?

以上、よろしくおねがいします。

--
北島 哲郎(きたじま・てつろう)
e-mail: tet...@amanogawa.to
織姫 URL:http://www.amanogawa.to/

nobu_toyofuku

unread,
Feb 6, 2013, 5:36:42 AM2/6/13
to redmine-...@googlegroups.com
  豊福です。

2013年2月6日水曜日 14時17分51秒 UTC+9 きたじま:
(1) User APIの問題
  ...
user = User.new(
    :login => member.login,
     :firstname => member.firstname,
     :lastname => member.lastname,
     :mail => member.mail,
     :auth_source_id => member.auth_source_id
)
というコードを書いても、 :auth_source_id  などというメソッドはない?などと怒られます。
GETでuserを取ってきてもXMLにauth_source_idが含まれないのが原因では?と予想しております。
 
app/views/users/show.api.rsb に書いてあるものしか返ってこないのですかね。
試しに show.api.rsb に
  api.auth_source_id @user.auth_source_id
を追加したら auth_source_id が返ってくるようになりました。

(2) Project APIの設定
GETのresponseにはparent
projectの情報が含まれるようですが、POSTで新規プロジェクトを作るときに(ActiveResource経由を前提として)Parent
Projectの設定は無理でしょうか?

試しに
Project.new(..., :parent_id => 1, ...)
 のようにしてやってみたらうまくいきました。
---

 

Tetsuro KITAJIMA

unread,
Feb 7, 2013, 10:31:47 PM2/7/13
to redmine-...@googlegroups.com
To: 豊福さま

北島です。
コメント、というかお答えありがとうございます……!

他の業務の関係で問題のredmineを本格的に触れるのがちょっと後になりそうですが、試してみます。

それでは、失礼します。

2013年2月6日 19:36 nobu_toyofuku <nobu.t...@gmail.com>:
> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、redmine-users-...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/redmine-users-ja?hl=ja からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages