私はこれを可能な限り簡潔かつポイントにとどめようとします。RubyでのREST APIの使用 - 認証するタイミング
私はDiplomat gemの後ろにモデル化されたRuby gemを書いています。これは、製品のREST APIのラッパーです。私が消費しているAPIは、トークンベースの認証を使用しています。 POSTを介してAPIトークンが送信され、セッションがクッキーとして返されます。私は、APIによって返されたクッキーを処理するために、ファラデーのcookiejarミドルウェアを利用しています。概念的に私が苦労している問題は、認証するときです。
私はRestClientとVolumeという2つのクラスを持っています。後者は前者から継承する。現在のところ、RestClientのinitメソッドは接続オブジェクトを作成して認証し、Volumeのinitメソッドはsuperを呼び出してパスを渡します。私の考えは、RestClientから継承したクラスが初期化されると、そのクラスがユーザーを認証するということです。
class RestClient
def initialize(api_path)
<build connection>
auth
end
def auth
<post token, get session cookie>
end
end
class Volume < RestClient
def initialize
super('/volume')
end
def volumes
<send GET, receive volumes>
end
end
obj = Volume.new #Creates object, authenticates user
obj.volumes #Returns list of volumes
私は正しいトラックに向かいましたか?メソッドが初期化されたときに認証するのではなく、メソッドがオブジェクトに対して最初に呼び出されるまで認証を延ばすべきですか?私はこれについて完全に間違っているのですか?
である私は、フィードバックを感謝し、私はoverthinkingに非常になりやすいです。 APIコールを呼び出す各メソッドの前に怠惰な認証を行い、テストが大幅に簡単になりました。初期化中に認証を指摘するのは貧弱なパターンであり、そのアドバイスだけで大きな助けとなったという単純な事実の答えとしてマークします。 – Alayde