К сожалению, не удалось найти ни одного сообщения, посвященного этому аспекту.
Я создал приложение WebAPI (ASP.NET Core 2.1) и использую NSwag , который я использую для автоматической генерации прокси-серверов службы машинописи.
Я видел примеры кода, где JsonResult
& ActionResult
возвращается действием контроллера.
DTO обычно относятся к Service Layer , поэтому мне интересно, можно ли использовать их в качестве вывода действия контроллера.
Интересно, правильно ли возвращать DTO из действия контроллера.
Контроллер
[Route("api/[controller]/[action]")]
[Authorize]
public class EntryController : ControllerBase
{
private readonly IEntryService _entryService;
public EntryController(
IEntryService entryService
)
{
_entryService = entryService;
}
public async Task<List<EntryDto>> GetMany(long id)
{
var result = await _entryService.GetMany(id);
return result;
}
}
Услуги
public class EntryService : BaseService, IEntryService
{
private readonly IEntryHighPerformanceService _entryHighPerformanceService;
public EntryService(
AppDbContext context,
IEntryHighPerformanceService entryHighPerformanceService,
SessionProvider sessionProvider
) : base(
context,
sessionProvider
)
{
_entryHighPerformanceService = entryHighPerformanceService;
}
public async Task<List<EntryDto>> GetMany(long id)
{
var dtos = _entryHighPerformanceService.GetByVocabularyId(id);
return await Task.FromResult(dtos);
}
}