ASP.NETコントローラーは薄くする必要があります
ああ、この絶え間なく繰り返される礼儀は、控えめな表現で大きくなりすぎました。
なぜそれらは薄くなければならないのですか?プラスは何ですか?今そうでない場合、どうやって薄くするのですか?どうやってそれらを薄く保つのですか?
, , .
, 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 .
« , ?» « ?» — , , .