Member 9129971 Ответов: 0

Как организовать web api для веб-и мобильных звонков?


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

1-один и тот же контроллер и другое имя действия для мобильных устройств и интернета, например
api/Customer/GetCustomer_web
api/Customer/GetCustomer_mobile


2-тот же контроллер и то же действие, но другой параметр
api/Customer/GetCustomer?app=web
api/Customer/GetCustomer?app=mobile


3-Другой Контроллер
api/Customer_web/GetCustomer
api/Customer_mobile/GetCustomer


4-что-то еще

Кроме того, что является лучшей практикой

Что я уже пробовал:

Пробовал различные методы реализации, упомянутые в вопросе, но для выполнения этой задачи нужна лучшая практика.

Richard Deeming

Почему вам нужно возвращать разные данные в зависимости от вызывающего абонента?

Member 9129971

более ясное слово-viewmodel not data, у меня есть разные viewmodels для web и mobile, например, некоторые поля показаны в web, но не показаны в mobile , есть разные представления как для mobile , так и для web, вы бы сказали , что для этого я могу просто создать метод с каким-то другим именем, но проблема в том, что api построен таким образом, что если я создам другие методы, то это будет беспорядок для обслуживания, поэтому мне нужно решение, не теряя никаких предыдущих усилий.

Richard Deeming

Но какие поля вы показываете, а какие нет, - это проблема пользовательского интерфейса.

В терминах MVVM данные, возвращаемые из API, являются моделью. Вы используете модель представления в интерфейсном приложении, чтобы адаптировать эту модель к представлению.

Member 9129971

да модель например:для интернета у нас есть модели, имеющие поля A,B,С,D и для Андроид у нас есть такая же модель в наличие,б (здесь С,D имеют значение null).

Richard Deeming

Нет. У вас есть одна и та же модель для обоих. Вы используете модель представления, чтобы решить, какие поля будут отображаться, а какие нет, и адаптировать модель к представлению.

У вас не было бы отдельных таблиц базы данных для "веб-клиентов" и "мобильных клиентов"; так зачем же иметь для них отдельные модели?

0 Ответов