2011-02-08 30 views
7

Soy nuevo en REST y parece que debería ser bastante simple. En una aplicación .NET, puedo crear una referencia a un servicio WCF y los contratos para todos los tipos disponibles se generarán para mí.Generar contratos para objetos REST

Ahora intento consumir un servicio REST en una aplicación Windows Phone 7. Si bien puedo hacer mi llamada y obtener la respuesta adecuada, ¿hay alguna manera simple de crear las clases a las que se deserializaría cada objeto?

Estoy usando RestSharp para administrar mis llamadas. En algunos ejemplos que he visto, los usuarios han creado sus propias clases y han generado el xml de forma manual. Me gustaría evitar esto si es posible.

muchas gracias!

+0

no puedo responder a su pregunta, pero yo twitteo al autor de RestSharp con la esperanza de que recibirá una mejor orientación. –

Respuesta

8

Suponiendo que su respuesta es XML, puede guardar el xml en un archivo y luego llamar a xsd.exe para generar un esquema. Llame a xsd.exe en el esquema y generará un archivo de clase C# que puede serializar y deserializar desde el xml. Aquí está la documeantion sobre cómo funciona XSD.exe:

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx

+0

Una gran idea, gracias por la sugerencia. – earthling

+0

gracias, esta fue definitivamente la manera más fácil de hacerlo. – earthling

+0

¡Qué solución creativa! Prestigio. +1 – Stimul8d

3

Debe generar las clases a las que corresponderán sus datos de respuesta (o usar un esquema de deserialización dinámico si está en .NET 4) ya que REST no incluye un sistema de definición de esquema como lo hace SOAP. En RestSharp, there's a T4 helper to make generating the C# classes easier. Te lleva alrededor del 80% del camino hasta allí. Si necesita ayuda, publíquelo en el RestSharp Google Group.

+0

Gracias, estoy intentando T4 ahora. – earthling

+0

Tuve una discusión muy interesante el otro día con alguien que sugirió una forma en que este enfoque puede ser autodescriptivo, mediante el uso de valores rel muy específicos para identificar al cliente qué tipo exacto se devolverá. El conjunto de referencias que admite un servicio necesitaría estar claramente documentado y respaldado por el cliente, pero al menos puede evitar acoplar sus URI para devolver los tipos de esta manera. –

+1

https://github.com/johnsheehan/RestSharp/wiki/T4-Helper no encontrado – Kiquenet

Cuestiones relacionadas