Например я создаю API Client для stackoverflow. Мне нужно передать access_token
каждой конечной точке.
Я мог бы сделать это так:
StackClient.answers(access_token, params)
StackClient.badges(access_token, params)
Но я не хочу передавать access_token
на каждый запрос. И я улучшил логику, сохранив токен доступа внутри Агента.
def start(access_token) do
Agent.start_link(fn -> %{access_token: access_token} end, name: __MODULE__)
end
Тогда я использую ApiClient так:
StackClient.start(access_token)
StackClient.answers(params)
StackClient.badges(params)
Но у этого подхода есть большая проблема, потому что у агента есть глобальная область видимости для сервера. И два пользователя могут обнаружить конфликты с access_token.
Ребята! Можно ли настроить видимость агента в пределах одного http-запроса?
Или может быть другой способ уменьшить количество аргументов?