2015-07-20 4 views
0

Представьте, что у меня есть служба RESTful, которая развертывается на нескольких хостах и ​​не обязательно использует один и тот же номер порта. На отдельном хосте есть loadbalancer/proxy/gateway. Я хочу, чтобы имя хоста и ip-адрес возвращались как часть ответа HTTP, чтобы иметь диагностическую информацию о фактическом физическом сервере, который обработал мой запрос (а не loadbalancer). Какой самый RESTful способ вернуть такую ​​информацию? Существуют ли какие-либо специальные заголовки http, которые должны использоваться для этой цели, или лучше просто вернуть эти данные как часть раздела диагностической информации в теле ответа (например, json)?RESTful способ вернуть имя хоста сервера и порт

ответ

0

Это звучит как HTTP-заголовок «Location» может быть полезно:

https://en.wikipedia.org/wiki/HTTP_location

+0

В этой статье говорится, что она должна быть использована только для перенаправления, или для вновь созданного ресурса (который обычно не выполняется с использованием GET http глагол). Ни один из этих двух не является моим случаем, потому что я хочу отправить простые запросы GET. – user1339260

+0

ОК. Похоже, что вам нужен пользовательский HTTP-заголовок, а не добавление информации о сервере в ответ, отправленный клиенту. Если клиенту не нужна информация о сервере для следующего запроса? – morsor

+0

Нет, он не должен использоваться для следующего запроса. Цель этой информации является чисто диагностической, поэтому предполагается, что она используется только для устранения неполадок. Моя забота о добавлении настраиваемого заголовка заключается в том, что он не очень хорошо вписывается в один из фундаментальных принципов REST - единообразный интерфейс. Клиенты не будут иметь информации о семантике этого заголовка, потому что он широко не используется, тогда как выделенный раздел json в теле ответа может быть четко определен и описан самостоятельно с помощью HATEOAS. – user1339260

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