Livros2Controller não funciona. Ao chamar a API via Postman ocorre o erro 404.:
namespace Alura.ListasLeitura.Api.Controllers
{
[Authorize]
[ApiController]
[Route("api/v2.0/[controller]")]
public class Livros2Controller : ControllerBase
{
private readonly IRepository<Livro> _repo;
public Livros2Controller(IRepository<Livro> repository)
{
_repo = repository;
}
[HttpGet]
public IActionResult ListaDeLivros()
{
var lista = _repo.All.Select(l => l.ToApi()).ToList();
return Ok(lista);
}
[HttpGet("{id}")]
public IActionResult Recuperar(int id)
{
var model = _repo.Find(id);
if (model == null)
{
return NotFound();
}
return Ok(model);
}
[HttpGet("{id}/capa")]
public IActionResult ImagemCapa(int id)
{
byte[] img = _repo.All
.Where(l => l.Id == id)
.Select(l => l.ImagemCapa)
.FirstOrDefault();
if (img != null)
{
return File(img, "image/png");
}
return File("~/images/capas/capa-vazia.png", "image/png");
}
[HttpPost]
public IActionResult Incluir([FromForm] LivroUpload model)
{
if (ModelState.IsValid)
{
var livro = model.ToLivro();
_repo.Incluir(model.ToLivro());
var uri = Url.Action("Recuperar", new { id = livro.Id });
return Created(uri, livro); //Cód. 201
}
return BadRequest();
}
[HttpPut]
public IActionResult Alterar([FromForm] LivroUpload model)
{
if (ModelState.IsValid)
{
var livro = model.ToLivro();
if (model.Capa == null)
{
livro.ImagemCapa = _repo.All
.Where(l => l.Id == livro.Id)
.Select(l => l.ImagemCapa)
.FirstOrDefault();
}
_repo.Alterar(livro);
return Ok(); //Cód. 200
}
return BadRequest();
}
[HttpDelete("{id}")]
public IActionResult Remover(int id)
{
var model = _repo.Find(id);
if (model == null)
{
return NotFound();
}
_repo.Excluir(model);
return NoContent(); //Cód. 204
}
}
}