David_Wimbley
Ничего не зная о вашем проекте, я изложу вам свою точку зрения.
Хотя то, что сказал ваш коллега, верно, контроллеры web api включены в проект MVC (с точки зрения функциональности контроллеры MVC и контроллеры web api очень похожи)...ваш коллега может использовать их взаимозаменяемо, не осознавая или, возможно, просто не заботясь, поскольку они служат одной и той же цели.
Я бы поставил много денег, если бы вы пошли туда и изменили все унаследованные контроллеры веб-api с ApiController (например, MyWebApiController: ApiController) на контроллер (превратив их из веб-api в контроллеры mvc), он, вероятно, все равно работал бы так же. Там могут быть различия, если вы делаете загрузку файлов или другие вещи, но простые/базовые команды crud, скорее всего, не увидят никаких проблем.
Итак, вопрос в том, имеет ли это значение? Вероятно, нет, но это делает много предположений о проекте, который я никогда не видел. Есть ли преимущества? Если это простой автономный проект, который является только веб-интерфейсом, то единственное преимущество, которое я вижу, - это только один проект/решение для работы (для меня это не имеет большого значения в любом случае).
Что касается того, что это хорошая практика, то если бы вы создавали приложение, которое имело бы несколько пользовательских интерфейсов (например, веб -, настольный, мобильный) Я, вероятно, не стал бы жестко связывать проект web UI со слоем API, как это было сделано, я бы разделил его на отдельные проекты и представил API как свой собственный проект, а MVC-как свой собственный проект.
Это может быть слишком далеко вниз по пути разработки, что попытка разделить это на части просто считается техническим долгом на данный момент для вас, но я сомневаюсь, что использование контроллеров web api в проекте mvc приносит какой-либо вред.
RohitVaidya
Спасибо Дэвиду за подробное объяснение моего вопроса.
Да, это автономное приложение, поэтому наличие веб-API в одном проекте не причиняет никакого вреда.
Однако если он работает одинаково даже после изменения всех унаследованных контроллеров web api с контроллера API на обычный контроллер, то я думаю, что мне нет смысла писать контроллер Web API вместо обычного контроллера.
Как правило, основная цель написания web api заключается в предоставлении сервисного интерфейса для различных приложений, и здесь, в моем примере, мы не обслуживаем его. :-)