Как сгенерировать WSDL с помощью Ruby?

Я начал работать с Ruby и Soap и у меня возникли вопросы:

Как мне создать WSDL-файл для созданной мной службы? Будет ли он совместим с клиентом .NET?


begin
   class MyServer < SOAP::RPC::StandaloneServer
         # Handler methods
      def add(a, b)
         return a + b
      end
      def div(a, b)
         return a / b
      end

      # Expose our services
      def initialize(*args)
         add_method(self, 'add', 'a', 'b')
         add_method(self, 'div', 'a', 'b')
      end


  end
  server = MyServer.new("MyServer",
            'urn:ruby:calculation', 'localhost', 8080)
  trap('INT'){
     server.shutdown
  }
  server.start
rescue => err
  puts err.message
end

Ответов (1)

Решение

ActionWebService (ранее в ядре Rails, теперь гем) имеет инструменты для создания файлов WSDL. Вы можете использовать инструменты, даже если вы не запускаете свой сервис в Rails.

http://www.datanoise.com/articles/2008/7/2/actionwebservice-is-back

Что касается того, будет ли он работать с .NET-клиентом, ответ может быть. Многие клиенты .NET, похоже, ожидают «расширенной» информации SOAP от Microsoft, которую веб-службы .NET предоставляют по умолчанию. Если клиент также может использовать услугу без этих дополнительных вещей, тогда конечно.

ОБНОВЛЕНИЕ # 1

Похоже, что указанная выше ссылка больше не работает. Однако есть форки ActionWebService, которые появились на github. Вы можете увидеть довольно хороший их список здесь . Вот пара ссылок на некоторые ключевые версии: