2010-12-22 68 views
11

如何使用play開發webservice?如何使用遊戲!開發webservice的框架?

我在官方網站上找不到任何文件。

+0

你爲什麼要博客? Play不是一個Web服務框架,你爲什麼要使用它? – skaffman 2010-12-22 19:22:21

+6

由於其嚴格的REST特性,Play實際上非常有能力構建Web服務,而且它使用的MVC模式使得實現起來非常簡單。爲什麼要爲Web服務使用Web應用程序框架的一個例子是用於構建也包含Web服務(例如,Twitter及其API)的Web應用程序。 – Codemwnci 2010-12-22 19:47:05

回答

26

真的很簡單。

Play帶有許多方法,您可以使用這些方法將您的操作作爲Web服務公開。

例如

render() 
renderJSON() 
renderXML() 

這些都可以用來以特定的方式來呈現數據。

如果你有一個Web服務,讓我們假設一個RESTful Web服務,如果您想返回兩個數字的總和,你可以通過以下方式

public class Application extends Controller { 

    public static void sum(Float num1, Float num2) { 
     Float result = num1 * num2; 
     render(result); 
    } 
} 

這樣做,如果你的路線設置爲使用XML作爲格式,或格式的請求頭設置正確,你再使用一個名爲app/views/Application/sum.xml

要設置的路線正常Groovy的模板來正確地格式化返回的結果,然後將下面的行添加到您的route文件

然後
GET /webservices/sum     Application.sum(format:'xml') 

的sum.xml看起來像

<response> 
    <sum>${result}</sum> 
</response> 

同樣的概念也適用於JSON。

如果您不想使用groovy模板,您可以使用renderJSON/renderXML方法簡單地創建XML或JSON,但這確實意味着您要在您的控制器中構建演示邏輯,這是不好的做法。

作爲一個子注,如果你想消費web服務,那麼你使用play.libs.WS類。我已經寫了關於如何做到這一點

http://playframework.wordpress.com/2010/08/15/web-services-using-play/