play を使用して Web サービスを開発するにはどうすればよいですか?
公式サイトにドキュメントが見つかりません。
本当に簡単です。
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/