Pop

55.Servicios Web.API REST. MVC .Método Post- Visual Studio 2017

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;
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 Pruebas.Models;
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

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...