Existe-t-il un moyen facile de renvoyer des données aux clients du service Web dans JSON à l'aide de Rails?Comment exposer des données au format JSON via un service Web utilisant Rails?
Répondre
Voyons voir.
Modèle
class Contact < ActiveRecord::Base
...
end
Routes
map.resources :contacts
contrôleur
class ContactsController < ApplicationController
...
def show
@contact = Contact.find(params[:id]
respond_to do |format|
format.html
format.xml {render :xml => @contact}
format.js {render :json => @contact.json}
end
end
...
end
Donc, cela vous donne une interface API sans la nécessité de définir des méthodes spéciales pour obtenir le type de répondre requis
Par exemple.
/contacts/1 # Responds with regular html page
/contacts/1.xml # Responds with xml output of Contact.find(1) and its attributes
/contacts/1.js # Responds with json output of Contact.find(1) and its attributes
Rails monkeypatches la plupart des choses que vous voulez bien sur le point d'avoir une méthode #to_json
.
En haut de ma tête, vous pouvez le faire pour les hachages, les tableaux et les objets ActiveRecord, qui devraient couvrir environ 95% des cas d'utilisation que vous pourriez souhaiter. Si vous avez vos propres objets personnalisés, il est trivial d'y écrire votre propre méthode to_json
, qui peut simplement bloquer les données dans un hachage, puis renvoyer le hachage jsonized.
monkeypatches? Je n'ai aucune idée de ce que cela signifie, mais je pourrais deviner qu'il s'agit de fournir cette méthode à la plupart des objets, sinon tous, –
Il corrige un objet existant, en ajoutant la méthode ou en la modifiant si elle existe. C'est vraiment juste une extension de langage dynamique. –
Il est un plug-in qui fait exactement cela, http://blog.labnotes.org/2007/12/11/json_request-handling-json-request-in-rails-20/
Et d'après ce que je comprends cette fonctionnalité est déjà dans Rails. Mais allez voir ce blog, il y a des exemples de code et des explications. Rails resource donne une interface RESTful pour votre modèle.
ActiveRecord fournit également des méthodes pour interagir avec JSON. Pour créer un JSON à partir d'un objet AR, appelez simplement object.to_json. Pour créer un objet AR à partir de JSON, vous devriez être capable de créer un nouvel objet AR, puis appeler object.from_json .. pour autant que j'ai compris, mais cela n'a pas fonctionné pour moi.
- 1. Comment passer plusieurs paramètres au format json à un service Web en utilisant jquery?
- 2. Données POST au format JSON
- 3. Comment exposer le flux de syndication RSS via le service Web WCF au client JQuery
- 4. Empêcher l'accès direct au service Web JSON
- 5. exposer des fichiers à partir d'un service via une application rails
- 6. Protection d'un service Web JSON
- 7. Comment exposer des objets membres via CodeDOM?
- 8. Meilleur moyen d'afficher des données via JSON en utilisant jQuery
- 9. Sérialisation d'objets métier au format JSON
- 10. Comment consommer un service web json ou xml dans Rails ou Ruby?
- 11. Exposer des données dans un flux d'atomes
- 12. Sérialisation de l'objet au format JSON et obtention du format
- 13. JSON service web longueur maximale du contenu?
- 14. Comment exposer ma collection à partir du service Web (WCF)
- 15. Bases de données utilisant JSON comme format de stockage/transport
- 16. Accéder au service WCF via Internet
- 17. Comment exposer un ITemplate via un contrôle utilisateur?
- 18. Comment ajouter de nouvelles données via un service REST opposé au service de style RPC?
- 19. Exemples d'utilisation pratique de JSON vers et depuis un service Web ASMX via jQuery
- 20. Meilleure pratique pour exposer des services Web
- 21. C# - analyse des données au format json dans des tables de hachage imbriquées
- 22. Transfert de données MS Excel vers un site Web via un service Web
- 23. Comment exposer un modèle Django en tant que service Web RESTful?
- 24. comment accéder au service web dans .net?
- 25. Comment déboguer via le service Web
- 26. Comment appeler un service Web ASMX via GET?
- 27. Problème avec l'appel jQuery.ajax au service Web
- 28. Rails service Web SOAP client
- 29. Comment renvoyer un format de date spécifique au format JSON dans Grails?
- 30. Comment accrocher la réponse json au formulaire html via jquery?
Bonne réponse! Si je peux le mettre à jour vers Rails 3, la méthode json semble maintenant être to_json. Au moins c'est ce qui a fonctionné pour moi ... c'est-à-dire @ contact.to_json – codedog