Кэширование или определение глобальной константы для доступа WSDL - PullRequest
1 голос
/ 30 октября 2009

У меня есть приложение Rails, которое использует API другого приложения Rails через файл WSDL. Я хотел бы как-то кэшировать или определить в качестве константы «дескриптор» API, который я создаю следующим образом:

serv = SOAP::WSDLDriverFactory.new(APP_CONFIG['api_url']).create_rpc_driver

Перезагрузка для всех методов, использующих API, является медленной и не очень СУХОЙ. API меняется не очень часто, поэтому я хотел бы просто создать «дескриптор» при запуске приложения и всегда использовать один и тот же «дескриптор» для всех соединений.

Как и где я могу определить этот тип глобальной переменной? Я знаю, что константы могут быть установлены в environment.rb, но, похоже, это не сработает, если я попытаюсь определить эту строку там, получим какую-то ошибку тайм-аута.

1 Ответ

0 голосов
/ 30 октября 2009

Я бы предложил использовать утилиту soap4r, wsdl2ruby.rb, чтобы сгенерировать драйвер мыла и использовать его. Soap4r - одна из тех странных библиотек, которая входит в дистрибутив Ruby 1.8.6 и доступна в виде гема.

gem install soap4r
wsdl2ruby.rb --help

Вы захотите сделать что-то вроде этого:

wsdl2ruby.rb --wsdl http://your/wsdl/url --type client
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...