У меня есть объекты виджетов, которые принадлежат объектам компании. Между компаниями и виджетами существует отношение один ко многим.
Вот мой первый проход в методе Get:
[Route("MyApi/Companies/{companyId}/WidgetAdministration/[controller]")]
[HttpGet("{widgetId}")]
public async Task<ActionResult<WidgetDTO>> GetWidget([FromRoute] int companyId, [FromRoute]int widgetId)
{
WidgetDTO widgetDto = await _myContext.Widgets
.Where(w => w.CompanyId == companyId && w.WidgetId == widgetId)
.AsNoTracking()
.ProjectTo<WidgetDTO>(_mapper.ConfigurationProvider)
.FirstOrDefaultAsync();
if (widgetDto == null)
{
return NotFound();
}
else
{
return Ok(widgetDto);
}
}
, если пользователь, связанный с «Компания 1», запрашивает «Виджет Компании 1 55», но «Виджет 55» принадлежит «Компании» 2 ", что я должен вернуть?
404 / NotFound - Поскольку" Widget 55 "принадлежит" Company 2 ", вышеприведенный оператор LINQ ничего не найдет, даже если" Widget 55 «действительно существует.
401 / NotAuthorized - Поскольку «Виджет 55» не принадлежит «Компании 1», «Компания 1» не имеет права на его просмотр.
400 / BadRequest - Это просто неверный запрос, поскольку виджет и компания не совпадают.
Кроме того, кто-нибудь может порекомендовать хороший ресурс, чтобы помочь мне с другими подобными сценариями ios?