Tengo una duda respecto a como debo construir tanto la Uritemplate del WebInvoke de uno de los métodos de un servicio REST, como su consumo mediante una llamada AJAX:
La duda que tengo es que quiero que el "OperationContract" sea mediante el paso de un objeto y no de por parámetros:
Código C:
Ver original
[OperationContract] [WebInvoke(UriTemplate = "/alumno/{a}", Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] Alumno nuevoAlumno(Alumno a);
Este es un método que forma parte del contrato del servicio REST, como podemos observar la Uritemplate está formada por un ruta definida, que es la que utilizaremos para invocar al método del servicio.
Por otro lado tenemos la llamada AJAX con la que vamos a consumir el servicio:
Código Javascript:
Ver original
var a = { "a": {"Nombre":"aaar","DNI": 1, "FechaNac": "222", "Edad": 2} }; $.ajax({ url: "http://localhost:2133/ServicioREST/alumno/{" + a + "}", method: 'get', dataType: 'json', success: function (data) { alert("Exito"); }, error: function (err) { alert(err); } });
Mi duda es: ¿Es posible consumir el servicio enviando el objeto "a" directamente al método (WebInvoke), o la buena práctica es hacer el paso por parámetros individuales y no encapsular la información en un objeto como en el ejemplo?
Al hacerlo de esta forma siempre me da errores a la hora de intentar consumir el servicio.
Gracias.