Повторное использование ViewModels для API в ASP.NET MVC? - PullRequest
1 голос
/ 15 декабря 2010

Я хочу создать API для большого приложения ASP.NET MVC. Это приложение использует строго типизированные модели представления для всех своих представлений. Наиболее важной задачей API будет включение функциональности веб-сайта на других платформах, таких как iPhone Objective C.

Теперь с самого начала была идея повторно использовать ViewModels и существующие действия контроллера для API таким образом, чтобы модели представления возвращались контроллером вместо представления в виде JSON или Ajax.

Но об этом уже шла дискуссия, потому что у моделей представления есть много сложной информации, которая не всегда кажется полезной для API. Например, типичной API-функцией может быть GetRanking (). Модель представления, принадлежащая действию Ranking (), на самом деле содержит больше данных, таких как имя текущего пользователя и, возможно, некоторые пояснения о рейтинге.

Итак, вопрос в том, как лучше всего подойти к этому: написать отдельные действия для API и вернуть сериализованные доменные объекты или повторно использовать текущие действия и модели представления и просто игнорировать ненужные данные?

1 Ответ

0 голосов
/ 15 декабря 2010

Или третий вариант: создать набор сервисных моделей.В долгосрочной перспективе большой выигрыш в создании отдельных ViewModels, как правило, представляет собой представление, и сущности могут меняться независимо.Службы также имеют несколько уникальных измерений, таких как управление версиями, которые вам, возможно, не нужно учитывать в других местах.В любом случае, сервис почти всегда заслуживает отдельной модели.

Теперь вы часто можете утверждать, что ViewModels могли бы перейти от / использовать модели сервисов для передачи данных своей роли.Специально для обновлений, которые имеют тенденцию быть немного независимыми от пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...