Los controladores ASP.NET deben ser delgados
Oh, esta perogrullada siempre repetida, cubierta de toneladas de eufemismo.
¿Por qué deberían ser delgados? ¿Cuál es el plus? ¿Cómo adelgazar si no lo son ahora? ¿Cómo los mantienes delgados?
, , .
, 6 , , . , , .
1. (DTO)
, , - , , HTTP.
, - :
public IActionResult CheckOutBook([FromBody]BookRequest bookRequest)
{
var book = new Book();
book.Title = bookRequest.Title;
book.Rating = bookRequest.Rating.ToString();
book.AuthorID = bookRequest.AuthorID;
//...
}
, , . HTTP .
2.
, , . , .
, -. , . ASP.NET MVC, .
!
public IActionResult Register([FromBody]AutomobileRegistrationRequest request)
{
// , VIN ...
if (string.IsNullOrEmpty(request.VIN))
{
return BadRequest();
}
//...
}
3. -
-, , - .
. , ( ), , .
4.
, . , , .
, ASP.NET ( , ).
User
, / -, , , - .
5.
, !
public IActionResult GetBookById(int id)
{
try
{
// , -...
}
catch (DoesNotExistException)
{
// , ...
}
catch (Exception e)
{
// , ...
}
}
, , , , , . , , - .
-, - . , , - .
6. /
, ,
. CRUD , , .
, .
, , , , .
( ). , , .
public IActionResult CheckOutBook(BookRequest request)
{
var book = _bookRepository.GetBookByTitleAndAuthor(request.Title, request.Author);
// ,
//
// ...
return Ok(book);
}
CRUD , , , .
( ) - CQRS .
!
, , ? - ? ? !
, , , 5 .
UPD:
4 , , . « ?» « ?».
, , , , . , — HTTP . , HTTP , HTTP .
« , ?» « ?» — , , .