Chamando a http://localhost:5050/RegistroPonto passando no body:
{
"chapa": " ",
"registro": "2023-10-05T23:08:07.663Z",
"latitude": 0,
"longitude": 0
}
O erro que está retornando ainda é genérico:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-6c7bbe276c3a56487b4478d285e9c4bc-c40c96f1965d91af-00",
"errors": {
"registroPonto": [
"The registroPonto field is required."
],
"$.chapa": [
"The JSON value could not be converted to System.Int32. Path: $.chapa | LineNumber: 1 | BytePositionInLine: 13."
]
}
}
O meu controller:
using backend.Models;
using Microsoft.AspNetCore.Mvc;
namespace backend.Controllers;
[ApiController]
[Route("[controller]")]
public class RegistroPontoController : ControllerBase
{
private static List<RegistroPonto> registros = new List<RegistroPonto>();
[HttpPost]
public IActionResult AdicionaRegistroPonto([FromBody] RegistroPonto registroPonto)
{
registros.Add(registroPonto);
Console.WriteLine(registroPonto.Chapa);
Console.WriteLine(registroPonto.Registro);
Console.WriteLine(registroPonto.Latitude);
Console.WriteLine(registroPonto.Longitude);
return Ok("Registro de ponto adicionado com sucesso.");
}
}
O meu model:
using System.ComponentModel.DataAnnotations;
namespace backend.Models;
public class RegistroPonto
{
[Required(ErrorMessage = "A chapa do colaborador é obrigatória.")]
public int Chapa { get; set; }
[Required(ErrorMessage = "A data do registro é obrigatória.")]
public DateTime Registro { get; set; }
[Required(ErrorMessage = "A latitude do registro é obrigatória.")]
public float Latitude { get; set; }
[Required(ErrorMessage = "A longitude do registro é obrigatória.")]
public float Longitude { get; set; }
}
A diverença do projeto da aula para o meu é que não consegui executar o insominia com https então modifiquei:
"applicationUrl": "http://localhost:5050",
Estou no Windows executando no VScode e testando via Insominia.