public async Task <ActionResult <MonsterDto> > GetById(int id) { try { var cacheKey = $"Monster-{id.ToString()}"; if (_memoryCache.TryGetValue(cacheKey, out MonsterDto mapped)) { return(Ok(mapped)); } var monster = await _service.GetMonsterById(id); if (monster == null) { return(NotFound("Monstro não encontrado")); } mapped = _mapper.Map <MonsterDto>(monster); _memoryCache.Set(cacheKey, mapped, TimeSpan.FromDays(2)); // ReSharper disable once TemplateIsNotCompileTimeConstantProblem _logger.LogInformation($"Request {Request?.Method}: {Request?.Path.Value}"); return(Ok(mapped)); } catch (Exception e) { return(BadRequest("Erro ao captar um monstro")); } }
public async Task <IHttpActionResult> Get(int id) { var monster = await Task.Run(() => _monsterService.GetMonsterById(id)); return(Ok(monster)); }