11

play を使用して Web サービスを開発するにはどうすればよいですか?

公式サイトにドキュメントが見つかりません。

4

1 に答える 1

26

本当に簡単です。

Play には、アクションを Web サービスとして公開するために使用できるメソッドが多数用意されています。

例えば

render()
renderJSON()
renderXML()

これらはすべて、特定の方法でデータをレンダリングするために使用できます。

Web サービスがある場合、2 つの数値の合計を返したい RESTful Web サービスを想定してみましょう。次の方法でそれを行うことができます。

public class Application extends Controller {

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

ルートがフォーマットとして XML を使用するように設定されている場合、またはリクエスト ヘッダーでフォーマットが正しく設定されている場合は、通常の groovy テンプレートを使用して結果を返します。app/views/Application/sum.xml

ルートを正しくフォーマットするように設定するには、次の行を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/

于 2010-12-22T19:42:45.723 に答える