Я хочу создать API для большого приложения ASP.NET MVC. Это приложение использует сильно типизированные режимы просмотра для всех своих представлений. Наиболее важной задачей для API будет включение функциональности веб-сайта на другие платформы, такие как Objective C.Повторное использование ViewModels для API в ASP.NET MVC?
Теперь идея была с самого начала, чтобы повторно использовать ViewModels и существующие действия контроллера для API, в таком способ, которым модели представления возвращаются как результаты JSON или Ajax контроллером вместо представления.
Но было некоторое обсуждение об этом, поскольку в моделях просмотра много сложной информации, которая не всегда кажется полезной для API. Например, типичной функцией API может быть GetRanking(). Модель просмотра, принадлежащая к действию Ranking(), фактически имеет больше данных, таких как имя текущего пользователя и, возможно, некоторое объяснение ранжирования.
Итак, вопрос в том, каким будет наилучший способ приблизиться к этому: написать отдельные действия для api и вернуть сериализованные объекты домена или повторно использовать текущие действия и режимы просмотра и просто игнорировать ненужные данные?
Вы могли бы повторно использовать действия контроллера или создавать отдельные действия для API? – Randam
Это немного тактическое решение быть честным. Тем не менее, ваши контроллеры должны быть простыми, дешевыми и выброшенными, поскольку настоящая магия должна происходить в доменном слое, поэтому я, вероятно, сделаю отдельный набор сервисных контроллеров. –