11 votes

Comment utiliser le framework play! pour développer un webservice?

Comment utiliser play pour développer un webservice ?

Je ne trouve aucun document sur le site officiel.

26voto

Codemwnci Points 28817

Vraiment simple en fait.

Play est livré avec un certain nombre de méthodes que vous pouvez utiliser pour exposer vos actions sous forme de services web.

Par exemple

rendu()
renderJSON()
renderXML()

Ces méthodes peuvent toutes être utilisées pour afficher des données d'une manière particulière.

Si vous aviez un service web, supposons un service web RESTful, que vous vouliez retourner la somme de deux nombres, vous pourriez le faire de la manière suivante

public class Application extends Controller {

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

si votre route est configurée pour utiliser XML comme format, ou si le format est correctement défini dans l'en-tête de la requête, vous retournez ensuite le résultat en utilisant un modèle groovy normal appelé app/views/Application/sum.xml

Pour configurer la route pour formater correctement, ajoutez ensuite la ligne suivante à votre fichier route

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

Le sum.xml ressemblerait alors à quelque chose comme

  ${result}

Le même concept fonctionne pour le JSON.

Cependant, si vous ne voulez pas utiliser de modèles groovy, vous pourriez simplement créer le XML ou JSON en utilisant les méthodes renderJSON / renderXML, mais cela signifie que vous intégrez la logique de présentation dans votre contrôleur, ce qui est une mauvaise pratique.

En sous-note, si vous souhaitez consommer des services web, vous utilisez la classe play.libs.WS. J'ai écrit un article sur la façon de le faire

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X