2016-01-15 7 views
2

Мой RestClient предполагает использовать службы с нескольких серверов, каждый с разными именами и учетными данными.Могу ли я использовать тот же экземпляр RestTemplate при использовании RESTful-сервисов с нескольких серверов

Я понимаю, что RestTemplate is thread safe, и создает другое соединение для каждой задачи, но как это можно сделать с разными учетными данными? Не являются ли учетные данные, предоставленные RestTemplate при создании?

+0

они логически одни и те же услуги? просто с разными хостами? или разные услуги? – leeor

+1

Оба. Многие сервисы можно разделить на группы одного и того же сервиса с разными хостами. – Nati

+1

Зачем это делать. Трудно настроить, трудно понять, и нужно написать несколько новых классов, ..., почему вы не используете ни один RestTemplate для каждого сервера? – Ralph

ответ

2

Вы указываете учетные данные, поэтому я предполагаю, что вы используете RestTemplate для вызова служб, требующих аутентификации. Аутентификацию обычно обрабатывают с помощью заголовков HTTP-запросов (например, базового HTTP-аутентификатора) или параметров URL-адреса.

2 возможности:

  • инстанцировании простой RestTemplate и обрабатывать аутентификации вручную (путем добавления заголовков или параметров URL, когда вы делаете GET или POST ...) => не должно быть никаких проблем повторно использовать что RestTemplate с несколькими сервисами.
  • вы создаете экземпляр RestTemplate с помощью настраиваемого ClientHttpRequestFactory или некоторых пользовательских ClientHttpRequestInterceptor, которые обрабатывают security => вы, вероятно, не можете их использовать, поскольку вы можете смешивать разные аутентификации.
+3

Спасибо. Я заметил, что «RestTemplate» по какой-то причине считается «тяжелым» объектом, поэтому я хотел создать как можно меньше, но беспорядок с ручной проверкой подлинности на каждом «GET' /' POST »не очень приятен. Думаю, что я буду хранить «RestTemplate» для каждого используемого сервера. – Nati

 Смежные вопросы

  • Нет связанных вопросов^_^