Должен ли контроллер WepApi возвращать viewmodels

WebApi хорошо подходит для одностраничных приложений, которые используют javascript ViewModel с KnockoutJS.

должен ли мой WebApi возвращать ViewModel c#, который преобразуется в ViewModel Json.

или мой контроллер WebApi должен вернуть бизнес-объект и создать JavaScript viewmodel?

Я никогда не видел первый в любом учебнике WebApi, и мне интересно, почему.

1 ответов


Если мой WebApi возвращает ViewModel c#, который преобразуется в ViewModel Json, то

Да абсолютно. Таким образом, у вас есть полный контроль над тем, что отправляется клиенту. Кроме того, если вы решите изменить базовые бизнес-модели в новой версии API, например, вы не сломаете существующих клиентов. Все, что вам нужно сделать, это адаптировать отображение между бизнес-моделями и моделями представлений.

или должен мой WebApi контроллер возвращает бизнес-объект и создает JavaScript viewmodel?

Нет, никогда не отправлял свои бизнес-модели клиенту. Всегда следует использовать модели представления.

Я никогда не видел первый в любом учебнике WebApi, и мне интересно, почему.

Я никогда не видел первый в любом ASP.NET учебник MVC тоже, и мне тоже интересно, почему. Вероятно, потому, что учебники не охватывают реальные сценарии приложений, но представляют упрощенные примеры, которые позволят вам начать работу с некоторыми технологиями. Это печально, потому что так много людей следуют этим учебникам, не понимая важности использования моделей просмотра в реальных приложениях. StackOverflow-отличное место, чтобы увидеть, сколько людей на самом деле не знают о важности моделей просмотра.