Могу ли я использовать обнаруживаемые службы с помощью Apache Thrift?

Цель состояла бы в том, чтобы иметь обнаруживаемые сберегательные серверы, которые могут вычислять вещи, в частности, я хотел бы знать, какие у них есть службы и каковы ttypes для параметров, которые нужны этим службам. В идеале все, что мне нужно знать, это IP-адрес и порт сервера, и иметь возможность получить всю эту информацию, прежде чем использовать ее.

Допустим, на сервере есть следующий сервис:

service Calculator {
   double add(1:double num1, 2:double num2),
   double subtract(1: double num1, 2:double num2),
   double sqrt(1:double num1)
}

Имея только IP-адрес и порт, можно ли узнать, что на этом сервере есть эти три метода, и сколько переменных принимает каждый из них и какого типа?


person Santiago    schedule 05.09.2014    source источник


Ответы (1)


Thrift не предоставляет инфраструктуру инфраструктуры определения местоположения службы (например, WADL), просто потому, что это (по крайней мере, в настоящее время) выходит за рамки Thrift. Несмотря на это, действительно есть несколько вариантов.

  1. Публикация файлов Thrift IDL как элементов, загружаемых по HTTP, как это делает Evernote.

  2. Использование thrift -gen html yourfile.thrift для создания красивой HTML-страницы, содержащей полное описание всего, что находится в файле IDl, включая все /** docstyle comments */, которые вы сделали. Результат очень похож на Справочник по API Evernote, за исключением того, что за это время макет несколько улучшился. .

person JensG    schedule 05.09.2014
comment
Спасибо, я подозревал, что это так, но не был уверен на 100%. Я ценю рекомендации. Ваше здоровье! - person Santiago; 05.09.2014