¿Existe alguna manera fácil de devolver datos a clientes de servicios web en JSON utilizando Rails?¿Cómo expongo los datos en formato JSON a través de un servicio web utilizando Rails?
Respuesta
Rails resource ofrece una interfaz RESTful para su modelo. Veamos.
Modelo
class Contact < ActiveRecord::Base
...
end
Rutas
map.resources :contacts
Controlador
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
Así que esto le da una interfaces API y sin la necesidad de definir métodos especiales para obtener el tipo de responder requiere
Eg.
/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
rieles monkeypatches la mayoría de las cosas que le importan a tener un método #to_json
.
En la parte superior de mi cabeza, puedes hacerlo para hashes, matrices y objetos ActiveRecord, que deberían cubrir aproximadamente el 95% de los casos de uso que te puedan interesar. Si tiene sus propios objetos personalizados, es trivial escribir su propio método to_json
para ellos, que puede simplemente atascar datos en un hash y luego devolver el hash jsonizado.
monkeypatches? No tengo idea de lo que eso significa, pero podría adivinar que se refiere a proporcionar ese método a la mayoría de los objetos, si no a todos –
Está parcheando un objeto existente, agregando el método o cambiándolo si existe. Realmente es solo una extensión de lenguaje dinámico. –
hay un plugin que hace precisamente esto, http://blog.labnotes.org/2007/12/11/json_request-handling-json-request-in-rails-20/
Y por lo que entiendo esta funcionalidad ya está en los carriles. Pero ve a esa publicación de blog, hay ejemplos de código y explicaciones.
ActiveRecord también proporciona métodos para interactuar con JSON. Para crear JSON desde un objeto AR, simplemente llame a object.to_json. Para crear un objeto AR a partir de JSON, debería poder crear un nuevo objeto AR y luego llamar a object.from_json .. por lo que yo entendía, pero esto no funcionó para mí.
- 1. ¿Cómo expongo los datos en formato JSON a través de un servicio web utilizando Java?
- 2. ¿Cómo publicar datos a un servicio web utilizando JSON?
- 3. ASP.NET JSON servicio web Respuesta formato
- 4. Bugzilla - servicio web a través de JSON-RPC
- 5. ¿Transfiriendo datos binarios a través de un servicio web SOAP?
- 6. SOAP Autenticación a través del servicio web utilizando jQuery
- 7. ¿Cómo expongo las propiedades no persistentes usando un servicio de datos WCF?
- 8. ¿Cómo pasar múltiples parámetros en formato json a un servicio web usando jquery?
- 9. ¿Cómo transferir un java.util.Map a través de un servicio web?
- 10. Cómo invocar un servicio web utilizando Java
- 11. ¿Cómo obtener los datos mostrados de KendoGrid en formato json?
- 12. Conservación de tipos polimórficos en un servicio WCF utilizando JSON
- 13. datos POST en formato JSON
- 14. Publicar un archivo y datos asociados en un servicio web RESTful preferiblemente como JSON
- 15. servicio web debe volver JSON
- 16. Usar Ruby on Rails para buscar y analizar JSON desde otro servicio web
- 17. Cómo devolver JSON desde el servicio web
- 18. Cómo devolver JSON desde un servicio web 2.0 asmx
- 19. ¿Cuál es su método preferido para enviar datos complejos a través de un servicio web?
- 20. Creación de modelo de red troncal utilizando datos JSON recibidos
- 21. ¿Sincroniza los datos centrales de IOS con el servicio web?
- 22. cómo analizar datos multidimensionales JSON a través de Javascript
- 23. Serialización de pares de nombre/valor en un objeto personalizado a través del servicio web
- 24. Loop a través del objeto JSON Lista
- 25. Cómo convertir a formato JSON de D3?
- 26. Pasar datos POST a través de HTTP sin formato
- 27. Uso de un servicio JSON como modelo Rails
- 28. Enviar datos JSON a través de JQuery ajax.post a PHP
- 29. ¿Cómo agregaría datos nuevos a través de un servicio REST opuesto al servicio de estilo RPC?
- 30. accediendo a los datos json de jquery
¡Gran respuesta! Si puedo actualizarlo a Rails 3, el método json ahora parece ser to_json. Al menos eso es lo que funcionó para mí ... es decir, @ contact.to_json – codedog