Я постараюсь сохранить это как краткое и максимально возможное.Потребление API REST в Ruby - Когда аутентифицировать?
Я пишу драгоценный камень Ruby, смоделированный после драгоценного камня Diplomat, который является оберткой API REST продукта. API, который я использую, использует аутентификацию на основе токенов; маркер API отправляется через POST, а сеанс возвращается как файл cookie. Я использую промежуточное ПО Faraday cookiejar для обработки файлов cookie, возвращаемых API. Проблема, с которой я борюсь, концептуально - это когда аутентифицироваться.
У меня есть два класса, один называется RestClient и один называется Volume; последний наследует от первого. В настоящее время метод initClient RestClient создает объект подключения и проверяет подлинность, в то время как метод init Volume вызывает супер и передает путь. Мое мышление здесь состоит в том, что когда любой класс, который наследует от 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