2010-12-22 14 views
11

¿Cómo uso Play para desarrollar el servicio web?Cómo usar el juego! marco para desarrollar servicios web?

No puedo encontrar ningún documento en el sitio oficial.

+0

¿Por qué quieres hacerlo? El juego no es un marco de servicio web, ¿por qué te gustaría usarlo para eso? – skaffman

+6

Play es en realidad muy competente en la construcción de servicios web debido a su estricto carácter RESTful, y el patrón MVC que emplea lo hace bastante simple de lograr. Un ejemplo de por qué querría usar un marco de aplicaciones web para servicios web es construir aplicaciones web que también contengan servicios web (como Twitter y sus API). – Codemwnci

+0

@LionPlayer has tenido un poco de suerte con esto ... estoy tratando de hacer algo similar. –

Respuesta

26

Bastante simple realmente.

Juego viene con una serie de métodos que se pueden utilizar para exponer sus acciones como servicios web.

Por ejemplo

render() 
renderJSON() 
renderXML() 

todos estos pueden ser utilizados para poner datos de una manera particular.

Si tuviera un servicio web, vamos a suponer un servicio web REST, que quería devolver la suma de dos números, usted podría hacerlo de la siguiente manera

public class Application extends Controller { 

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

si la ruta está configurado para utilizar XML como el formato o el formato está configurado correctamente en el encabezado de la solicitud, a continuación, devuelve el resultado utilizando una plantilla maravilloso normal de llamada app/views/Application/sum.xml

para configurar la ruta para formatear correctamente, a continuación, añadir la siguiente línea a su archivo route

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

El sum.xml sería entonces algo como

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

El mismo concepto funciona para JSON.

Sin embargo, si usted no desea utilizar las plantillas maravilloso, simplemente podría crear el XML o JSON utilizando los renderJSON/renderXML métodos, pero esto no significa que usted está construyendo la lógica de presentación en su controlador, que es una mala práctica.

Como subnota, si usted quiere consumir servicios web, a continuación, se utiliza la clase play.libs.WS. He escrito un blog sobre cómo hacer que

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

+0

Sería muy útil si se pudiera actualizar su respuesta a considera Play2.0 y Scala. Lo crearé como una pregunta separada – Jack

+0

http://stackoverflow.com/questions/12180475/play-framework-webservice-tutorial-scala –

Cuestiones relacionadas