ウェブサービスのクライアントライブラリやHTTPをつかったミドルウェアのクライアントを作成する際に気をつけるべきこと
ウェブサービスのクライアントや、Net::Groonga::HTTP のようなミドルウェアのクライアント、いろいろありますが、HTTP サーバーへの簡単なアクセスを提供するライブラリをつくるときに僕が気をつけていることをここに記す。みんな気をつけたほうがいいです。
HTTP Client Library の引数を変更できるようにするか、HTTP Client Library のインスタンスをさしかえられるようにする
変更できないライブラリとか利用価値がないです。。 タイムアウトの設定もかえられないライブラリとか、たまにありますが、ちょっとひどいですね。
生のレスポンス情報がとれるようにする
HTTP::Response なり Furl::Response なりをそのままとれるようにすべき。
たとえば、$client->last_response
のようなメソッドを用意し、最後のレスポンスオブジェクトをとれるようにするとか。 こういった機能がないと、エラーがおきたときに直でライブラリの中をみないといけなくなる。
実際、直でソースいじってデバッグしないといけないライブラリのなんとおおいことか。