2010-04-11 6 views
3

J'ai une application silverlight qui a besoin de parler à une application rails pour ajouter un enregistrement. J'ai pu obtenir l'application Silverlight pour réussir le POST en supposant que tout va bien. Maintenant, cependant, je dois être en mesure de le rendre plus robuste et avoir l'application rails retourner les messages d'erreur/succès à l'application Silverlight dans un format qu'il peut lire (xml peut-être?). Je peux modifier l'application rails et l'application silverlight au besoin.Comment créer un service Web avec des rails?

Quelle est la meilleure façon d'y parvenir avec des rails?

Répondre

6

Rails gère la plupart de cette out-of-the-box.

Vous devez jeter un oeil à respond_to

Cela renverra les enregistrements dans @list comme XML:

@list = Model.find(:all) 
respond_to do |format|   
    format.html { render :action => "index" } 
    format.xml { render :xml => @list } 
end    

Vous pouvez définir le statut des en-têtes http (pour les actions qui ne sont pas retourner quelque chose):

format.xml { head :ok } 

Et vous pouvez fournir des messages plus complexes, dans ce cas, renvoyer des erreurs Active Record et un état mes sage:

format.xml { render :xml => @model.errors, :status => :unprocessable_entity } 
1

Ce serait à peu près le même que n'importe quelle application Rails typique. La seule différence est que vous répondriez avec xml (ou json, ou toute autre chose que Silverlight peut analyser) à toutes les actions pertinentes. (Plutôt que de rendre une page de HTML.)

Questions connexes