I am working on creating API and make it connect with SQL Server.
I've just finished the register user API for my application and it works perfectly.
Users have been created in Database.
When I am working on GET API on users, I find it difficult to do it even though I've lots of tutorials online.
I am mainly following the source code here.
Controllers/UserController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using CCCC_server.Authentication;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
namespace CCCC_server.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UsersController : ControllerBase
{
private readonly IConfiguration _configuration;
public UsersController(IConfiguration configuration)
{
_configuration = configuration;
}
[HttpGet]
// How to start from here in order to get all register user?
}
}
Controllers/AuthenticationController.cs
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
using CCCC_server.Authentication;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.IdentityModel.Tokens;
namespace CCCC_server.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class AuthenticationController : ControllerBase
{
private readonly UserManager<ApplicationUser> userManager;
private readonly IConfiguration _configuration;
public AuthenticationController(UserManager<ApplicationUser> userManager, IConfiguration configuration)
{
this.userManager = userManager;
_configuration = configuration;
}
[HttpPost]
[Route("Register")]
public async Task<IActionResult> Register([FromBody] RegisterModel model)
{
var userExist = await userManager.FindByNameAsync(model.UserName);
if (userExist != null)
return StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Message = " User Already Exist" });
ApplicationUser user = new ApplicationUser
{
Email = model.Email,
SecurityStamp = Guid.NewGuid().ToString(),
UserName = model.UserName
};
var result = await userManager.CreateAsync(user, model.Password);
if (!result.Succeeded)
return StatusCode(StatusCodes.Status500InternalServerError, new Response { Status = "Error", Message = "Failed to register new user" });
return Ok(new Response { Status = "Success", Message = "User Created Successfully" });
}
return Unauthorized();
}
}
}
Authentication/RegisterModel.cs
using System;
using System.ComponentModel.DataAnnotations;
namespace CCCC_server.Authentication
{
public class RegisterModel
{
[Required(ErrorMessage = "Username is required")]
public string UserName { get; set; }
[Required(ErrorMessage = "Email is required")]
public string Email { get; set; }
[Required(ErrorMessage = "Password is required")]
public string Password { get; set; }
}
}