2019-02-12(火) [長年日記]
■ CloudGarage Public APIのRuby Bindingを書いた
3連休の成果(というほど時間はかけてないけど)。
せっかくCloudGarageの開発者向けインスタンス無償提供制度でサーバを借りてることだし、なんか関連したもの書いておくか……と思って漁っていたら、昨年末にAPIが公開されていて、言語バインディングもまだほとんどないみたいだから、とりあえずRuby用の薄いレイヤを書いた:
わりと素直なREST APIなので*1、RestClientを使って簡単に。いずれCLIも用意したいですな。
苦労したところ:
RestClientが吐く例外のメッセージがステータスコードの情報だけで、APIから返ってくるメッセージが含まれてない(#response.bodyに入っている)のでデバッグに困った。不便でしょうがないので、例外オブジェクトの特異メソッドでメッセージを足した。本当はRefinementsでやるべきだと思うんだけど、例外クラスが動的生成されてるせいか、なんかうまくいかないんだよなー。Refinementsももうちょっと自在に操れるようになりたいものだ。
あと、サーバ削除のAPIがまともに動いてないような気がする。これは時間みつけて追いかけないとなぁ。
*1 サーバオペレーションまわりの語彙がやや残念な感じはうける。