none
crear servicio wfc RRS feed

  • Pregunta

  • Hola expertos, estoy trabajando en una aplicación la cual debe tener un servicio json que permita desde un frontend registrar usuarios en un backend pasando los parametros correspondientes, no estoy seguro de como hacerlo, me recomendaron que realice un servicio rest con metodo post en wcf.

    estuve investigando un poco y realice una WCF service aplication, pero no estoy seguro de como pasar parametros en post, tampoco se como testiarlo

     el servicio de contrato:

     [ServiceContract]
        public interface IServicioUsuario
        {
            [OperationContract]
            [WebInvoke(
              Method = "POST",
              UriTemplate = "RegistrarUsuario",
              RequestFormat = WebMessageFormat.Json,
              ResponseFormat = WebMessageFormat.Json,
              BodyStyle = WebMessageBodyStyle.WrappedRequest),
          Description("Recibe los parametros del usuario y devuelve un mensaje segun se efectue la operacion")]
            ResponseUsuario RegistrarUsuario(string id, string nombre, string apellido, string fecha, string email);
    

    implementacion del metodo registrarUsuario:

     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
        public class ServicioUsuario : IServicioUsuario
        {
            public ResponseUsuario RegistrarUsuario(string id, string nombre, string apellido, string fechaNac, string email)
            {
                return OperacionesUsuarios.RegistrarUsuario(id, nombre, apellido, fechaNac, email);
            }

    logica del metodo RegistrarUsuario:

     class OperacionesUsuarios
        {
             // registro de usuario
            internal static ResponseUsuario RegistrarUsuario(string id, string nombre, string apellido, string fechaNac, string email)
            {
                DataServiciosDataContext dc = new DataServiciosDataContext();
                ResponseUsuario response = new ResponseUsuario();
                response.ResponseCode = string.Empty;
                response.ResponseMessage = string.Empty;
    
                try
                {
                    Usuario usuario = new Usuario();
                    usuario.IdUsuario = Convert.ToInt32(id);
                    usuario.NombreUsuario = nombre;
                    usuario.Apellido = apellido;
                    usuario.email = email;
                    usuario.FechaNacimiento = Convert.ToDateTime(fechaNac);
                    dc.Usuarios.InsertOnSubmit(usuario);
                    dc.SubmitChanges();
                    response.ResponseCode = RecursoMensajes.CodeResponseOk;
                    response.ResponseMessage = RecursoMensajes.MessageResponseOk;
    
    
    
    
                }
                catch (Exception e)
                {
                    response.ResponseCode = RecursoMensajes.CodeResponseError;
                    response.ResponseMessage = String.Format(RecursoMensajes.MessageResponseError, e.Message);
                }
                return response;
            }

    recursos para mensajes al usuario:( RecursoMensajes.resx)

    gracias de antemano!

    miércoles, 19 de septiembre de 2012 18:59

Todas las respuestas

  • Para probar tu servicio, puedes utilizar jQuery.post()

    Agregas una nueva pagina html ( o aspx ) y le agregas codigo javascript algo como:

    function doPost(){

    $.post( "localhost/appwcf/RegistrarUsuario", { id: 1, nombre: "elnombre", apellido: "elapellido", fechaNac: "01/01/2000", email: "admin@micartaasanta.com"}, function(data) { alert("Response: " + data); })

    };

    Y desde un boton puedes llamar al metodo de javascript doPost();

    <input type='button' onClick="doPost();" />

    Para probar te recomiendo que descargues firefox y el plugin firebug.

    En vez de utilizar WCF para generar el servicio REST, puedes utilizar ASP.NET MVC.

    Pero al parecer, el servicio WCF esta casi terminado.


    #oledo



    • Editado Felipe Toledo sábado, 22 de septiembre de 2012 0:31 add links
    sábado, 22 de septiembre de 2012 0:24