55-.Servicios Web.API REST. MVC - Método Post
- 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 POST. Con este método podremos almacenar nuevos usuarios en nuestra bases de datos haciendo peticiones desde diferentes cliente. En el video muestro un ejemplo con el código:
- En el video hemos visto como crear un método POST. En la siguiente entrada del blog veremos como consumir este método desde un cliente. Por el momento os dejo el código que hemos visto en el video.
- Clase usuario:
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Pruebas.Models
{
public class Usuario
{
string nombre = String.Empty;
string email = String.Empty;
byte[] pass = null;
string codPais = String.Empty;
public string Nombre { get => nombre; set => nombre = value; }
public string Email { get => email; set => email = value; }
public byte[] Pass { get => pass; set => pass = value; }
public string CodPais { get => codPais; set => codPais = value; }
}
}
- Controlador UsuarioController:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace Pruebas.Controllers
{
public class UsuarioController : ApiController
{
public Boolean AltaUsuario(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.AltaUsuario";
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.Parameters.Add("@codPais", SqlDbType.VarChar, 3).Value = u.CodPais;
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;
}
}
}
- Procedimiento almacenado base de datos:
ALTER PROCEDURE [dbo].[AltaUsuario]
@nombre varchar(255),
@email varchar(255),
@pass varbinary(MAX),
@codPais varchar(3)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @idpais int
DECLARE @emailAux varchar(255)
SELECT @emailAux=Email FROM Usuarios WITH(NOLOCK) WHERE email= @email
IF(@emailAux<>'')
BEGIN
RAISERROR('Ya existe un usuario con este email',16,1);
RETURN -1
END
SELECT @idpais=idPais FROM Paises WITH(NOLOCK) WHERE CodPais = @codPais
INSERT INTO dbo.Usuarios(Nombre,Email,Pass,IdPais) VALUES
(@nombre,@email,@pass,@idpais)
END
No hay comentarios:
Publicar un comentario