node.js で Redmine の REST API を扱う node-redmine つくりました
Redmine の API をごにょごにょしたいことが多いんだけど、毎回 PHP ってのも芸が無いので年始の休みのときに遊びはじめてみた node.js / JavaScript のモジュールにしてみた。
何でもある npm になかったので、node.js の練習がてら作ってみました感じです。この記事ではバージョン0.2.0 です。
まだ作ってみたばっかで全然使ってないから API とかは変わるかもしれません。すいません。
インストール
npm だと、
$ npm install redmine
です。それ以外の方法はよく知りません。
使い方
example においてあるけど、
var Redmine = require('redmine'); var redmine = new Redmine({ host: 'vivid-winter-3808.heroku.com', apiKey: 'xxxxxxxxxxxxxxxxx', }); redmine.getIssues({project_id: 1}, function(err, data) { if (err) { // error console.log("Error: " + err.message); return; } console.log(data); // { offset: 0, // total_count: 3, // issues: // [ { updated_on: '2012/01/13 03:18:30 +0900', // priority: [Object], // status: [Object], // tracker: [Object], // project: [Object], // description: 'Test issue description', // subject: 'This is test issue on 1326392307929', // done_ratio: 0, // created_on: '2012/01/13 03:18:30 +0900', // start_date: '2012/01/13', // author: [Object], // id: 3 }, // ... });
的な感じ。
久々に Redmine の REST API 調べてたら Issues 以外にも API 増えてたから必要に応じて対応しようかな。
とりあえず Issues しか対応してないです。
APIとか
Redmine.getIssues(criteria, callback) Redmine.postIssue(issue, callback) Redmine.updateIssue(id, issue, callback) Redmine.deleteIssue(id, callback)
いやこれやすいか微妙だからすぐかえるかも。なんたって 0.2.0 だから...。
なんとなく、
Redmine.issue.get(criteria, callback) ... Redmine.issue.delete(id, callback)
とかのほうが使いやすいのでは(というか他のAPIに対応するため)、という気がしている。
まぁ適当にアップデートします。
その他
- Redmine の API テスト用に初めて heroku 使ってみたけど、すごいですね。やっぱりよくできてますね。
- テスト用サイトはこちらですが、添付ファイルの永続化とかしてないし本番用に使う気はないのけど、とりあえずうごいている
- node.js のパッケージもはじめて作ったけど簡単ですね。
- npm publish で公開できるのはすごい。PHP でもこういう感じに簡単にしたいなあ。
- test は見よう見まねで書き始めたけどちゃんと書きます書きます
- node.js 楽しいです
参考にしたものたち:
- amachang/facebook-node-sdk · GitHub
- 思考の軌跡 » herokuでRedmine(1.2.1)を動かす(前編)
- 思考の軌跡 » herokuでRedmine(1.2.1)を動かす(後編)
- Bundler: The best way to manage a Ruby application's gems
- Getting Started with Rails 3.x on Heroku | Heroku Dev Center
- The Badious Bamboo Stack | Heroku Dev Center
- npm モジュールを公開してみる - Web屋の人の日記 || WebJourney 開発ログ
- Travis CI: Building a Node.js project