Walidacja danych w web api

0

Cześć!
Jestem tu nowy i chce prosić Was o pomoc. Mam małe doświadczenie w programowaniu, jestem samoukiem po video-kursach. Dostałem zadanie zrobienia walidacji adresu email w web api i częściowo sobie z tym poradziłem.

W modelu użyłem System.ComponentModel.DataAnnotations:
[EmailAddress(ErrorMessage = "Niepoprawny adres email")]
public string Email { get; set; }

W kontrolerze w [HttpPost] uzależniłem zapis do bazy danych od warunku - if (ModelState.IsValid)
I wszystko niby działa - jeśli adres email jest niepoprawny, nie zapisuje się do bazy danych. Problem mam z wyświetleniem tego komunikatu błędu, który określiłem w Modelu. Zwyczajnie nie wiem jak to zrobić. Teraz jak wysyłam błędny adres za pomocą Postmana, nie dostaje zwrotnie żadnej informacji.

Bardzo proszę o jakieś wskazówki :)

2

No tak najprościej:

if (!ModelState.IsValid)
    {
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
    }

ale ogólnie lepiej to dać do jakiegoś action filtra, żeby nie kopiować w każdym kontrolerze oddzielnie.

0
somekind napisał(a):

No tak najprościej:

if (!ModelState.IsValid)
    {
        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
    }

ale ogólnie lepiej to dać do jakiegoś action filtra, żeby nie kopiować w każdym kontrolerze oddzielnie.

Niestety mam kolejny problem... Żeby użyć Request.CreateErrorResponse musiałbym skorzystać z System.Web.Http, a projekt korzysta już z Microsoft.AspNetCore.Mvc. Z tego co wyczytałem, nie powinno używać się ich obu w projekcie?

EDIT Udało mi się to w końcu zrobić w taki sposób:

if (!ModelState.IsValid)
{
    return Json(ModelState);
}
0

Pytałeś o web API, dostałeś odpowiedź o web API. Dlaczego nie napisałeś od razu, że piszesz w Core?

0
somekind napisał(a):

Pytałeś o web API, dostałeś odpowiedź o web API. Dlaczego nie napisałeś od razu, że piszesz w Core?

Przepraszam za wprowadzenie w błąd. Tak jak mówiłem - stawiam dopiero pierwsze kroki w programowaniu...
Programiści, od których dostałem ten projekt do zrobienia powiedzieli, że to web api, a ja sam nie do końca jeszcze rozumiem różnice...

1 użytkowników online, w tym zalogowanych: 0, gości: 1