57-.Servicios Web.API REST. MVC - Método Put
- En este capítulo del curso de programación en c# con visual studio 2017,vamos a continuar con con nuestro API REST. Recordando la definición de API REST, podemos decir que es cualquier interfaz entre sistemas que use HTTP para obtener datos o generar operaciones sobre esos datos en todos los formatos posibles, como XML y JSON. Es una alternativa a otros protocolos estándar de intercambio de datos como SOAP (Simple Object Access Protocol).
- En esta entrada vamos a crearnos un método PUT. Este método lo utilizaremos para modificar datos de usuarios que ya existen en nuestro sistema. La petición a nuestro método nos permitira modificar por ejemplo el nombre de un usuario, mediante una llamada a un procedimiento almacenado que finalmente ejecutara un UPDATE.
- Como es habitual os dejo el código del ejemplo visto en el video.En primer lugar os dejo el código del nuestro fichero UsuarioController.cs:
public Boolean ModificarUsuario(Usuario u)
{
Boolean todoOk = false;
SqlConnection conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["EmpresaConnectionString"].ConnectionString);
try
{
conexion.Open();
SqlCommand com = conexion.CreateCommand();
com.CommandType = System.Data.CommandType.StoredProcedure;
com.CommandText = "dbo.ModficarUsuario";
com.Parameters.Add("@nombre", SqlDbType.VarChar, 255).Value = u.Nombre;
com.Parameters.Add("@email", SqlDbType.VarChar, 255).Value = u.Email;
com.Parameters.Add("@pass", SqlDbType.VarBinary, 8000).Value = u.Pass;
com.ExecuteNonQuery();
todoOk = true;
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
finally
{
if (conexion != null && conexion.State == System.Data.ConnectionState.Open)
conexion.Close();
conexion.Dispose();
}
return todoOk;
}
- En segundo lugar os dejo el procedimiento almacenado que tenemos en la BBDD:
USE [Empresa]
GO
/****** Object: StoredProcedure [dbo].[ModficarUsuario] Script Date: 03/04/2018 18:38:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ModficarUsuario]
@nombre varchar(255),
@pass varbinary(MAX),
@email varchar(255)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @emailAux varchar(255)
SELECT @emailAux=Email FROM Usuarios WITH(NOLOCK) WHERE email= @email
IF(@emailAux='')
BEGIN
RAISERROR('No existe un usuario con este email',16,1);
RETURN -1
END
UPDATE [dbo].[Usuarios] SET Nombre = @nombre, Pass = @pass WHERE email= @email
END
No hay comentarios:
Publicar un comentario