Rewizja kodu Web API

Odpowiedz Nowy wątek
2018-12-13 17:32
0

Hej, piszę pierwszą w życiu Web API, i trochę kombinowałem jak przerobić przykład z książki na asynchroniczną. Bazy pod nią nie ma, działa na liście obiektów ładowanych do pamięci. Kod się kompiluje i funkcjonalności działają, ale ciekaw jestem czy coś byście może zmienili? Z async nie mam wiele doświadczenia. Za klienta (dla consume) jeszcze się nie brałem, to pewnie też będzie ciekawa przygoda.

[Route("api/[controller]")]
    public class ReservationController : Controller
    {
        private IRepository repository;
        public ReservationController(IRepository repo) => repository = repo;
        [HttpGet]
        public async Task<IActionResult> Get()
        {
            var returnMe = await Task.Run(() => repository.Reservations);
            return Ok(returnMe);
        }
        [HttpGet("{id}")]
        public async Task<IActionResult> Get(int id)
        {
            var returnMe = await Task.Run(() => repository.GetReservation(id));
            return Ok(returnMe);
        }
        [HttpPost]
        public async Task<IActionResult> Post([FromBody] Reservation res)
        {
            var returnMe = await Task.Run(() => repository.AddReservation(new Reservation
            {
                ReservationId = 0,
                ClientName = res.ClientName,
                Location = res.Location
            }));
            return Ok(returnMe);
        }
        [HttpPut]
        public async Task<IActionResult> Put([FromBody] Reservation res)
        {
            var returnMe = await Task.Run(() => repository.UpdateReservation(res));
            return Ok(returnMe);
        }
        [HttpDelete("{id}")]
        public async Task<IActionResult> Delete(int id)
        {
            var returnMe = await Task.Run(() => repository.DeleteReservation(id));
            return Ok(returnMe);
        }
}

GH projektu:
https://github.com/przemyslaw[...]I%20Controller%2001%20ksiazka

Pozostało 580 znaków

2018-12-13 18:03
1

W takiej formie ten async/await nic ci nie daje.

https://www.ben-morris.com/wh[...]onous-wrappers-with-task-run/

Ech... spróbuję to jakoś ogarnąć. Dzięki. - bakunet 2018-12-13 19:10

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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