2011-02-14 612 views
3

我使用Ruby on Rails框架構建網站。 該網站將包含一個Flash應用程序,該應用程序將使用Web服務與Rails應用程序進行交互。 我的合作伙伴構建了Flash應用程序,他告訴我Flash應用程序通過WSDL文件進行交互。如何創建Web服務

我是新來的Web服務。我想知道如何創建WSDL文件,以及如何在rails應用程序和WSDL文件之間進行交互。

如果您認爲有比SOAP/WDSL更好的選擇,我也想聽聽他們。

感謝,

俄德

+3

我寧願使用RemoteObject通信或REST GET/POST方法代替Web服務。大多數情況下,構建和執行更容易,尤其是對於前者。 – 2011-02-14 15:45:54

+0

@Florian這個評論看起來會更好,不是嗎? – Dunaril 2011-02-14 16:03:36

+2

它並沒有真正回答這個問題(如何使用RoR創建一個Web服務),所以我認爲最好是寫一條評論:) – 2011-02-14 16:09:15

回答

10

您是否使用過Google搜索how to build web services in Ruby?以下是拿出幾個環節,所有的尋址正是你想做的事:

http://www.tutorialspoint.com/ruby/ruby_web_services.htm

http://www.ibm.com/developerworks/opensource/library/os-ws-rubyrails/index.html

http://searchsoa.techtarget.com/tip/Web-services-with-Ruby-on-Rails

你怎麼樣來看看其中的一些環節,如果您還有其他問題,請回復我們。

我有一個闡述:

我的合作伙伴建立閃光燈 的申請,他告訴我, Flash應用程序通過 WSDL文件交互。

聽起來你的合作伙伴對Flash如何訪問遠程數據服務有着不完全的理解。當然,使用帶有WSDL的SOAP Web服務是一種方法,這裏有一些documentation on that

Flex/Flash應用程序也可以製作standard HTTP calls,有時也稱爲REST Web服務。在很多情況下,REST Web服務將返回一個XML文檔,但這不是必需的。任何數據,包括簡單的文本數據,都可以從REST Web服務返回。

很多人喜歡做的事情是使用AMF網關和RemoteObject。 AMF是一種二進制格式,因此您可以獲得比替代方案來回更小的文件大小。它還提供了服務器端對象和客戶端對象之間的自動對象轉換。這可以節省開發時間,因爲您無需解析數據即可將其轉換爲Flex可輕鬆使用的內容。RubyAMF是AMF的一個Ruby實現。

4

你會經歷更多的痛苦比你使用WSDL需要。相反,我建議創建一個返回json(或xml)的REST接口 - 你會發現在rails中它將起作用。

所以你必須喜歡的東西:

/books # returns a list of books. Also do Searching here 
/books/1 # return the detail of a book with ID of 1 

搜索「REST Rails的」,你會得到控制器將返回JSON和XML這取決於客戶端請求的例子。