Почему люди используют контроллер Web API в MVC
Я новичок в MVC и web api.so у меня есть пара вопросов относительно использования MVC и веб-api.
1) Я видел, что люди используют контроллер веб-API в MVC вместо MVC-контроллера по умолчанию. Мне нравится знать причину и преимущество.
2) также расскажу о том, когда мы должны использовать контроллер MVC по умолчанию и когда мы должны использовать контроллер Web API в MVC вместо MVC-контроллера по умолчанию?
3) Какое ограничение существует, когда мы работаем с контроллером Web API.
4), мы можем объявить любой публичный и закрытый метод в контроллере Web API с любым именем функции вместо get() put() delete() и т.д.
5), что функция put() для?
6) можем ли мы переопределить любую функцию в контроллере Web API?
спасибо
Ответы
Ответ 1
Веб-API и ASP.NET MVC - это два разных зверя.
ASP.NET MVC используется для стиля приложения RPC, это означает, что ваши конечные точки выполняют произвольные действия. Таким образом, вы можете иметь PersonController с действием FooBar, и вы можете вызвать эту процедуру с помощью GETting domain.com/person/foobar.
Web API используется (в основном) для REST (хотя он также поддерживает RPC). Это означает, что ваш контроллер предоставляет ресурс, который вы затем GET или POST или PUT или DELETE. Таким образом, ваш PersonController в веб-API будет иметь метод Get и метод Post и т.д.
Вы можете объявить любые методы, которые вам нравятся в классе контроллера API. В 100% чисто контроллере REST у вас будут методы, которые сопоставляются с HTTP-глаголами (т.е. Get, Post, Put, Delete). Вы можете использовать механизм маршрутизации веб-API, чтобы также отображать URL-адреса для действия (см. Подробнее здесь: http://encosia.com/rest-vs-rpc-in-asp-net-web-api-who-cares-it-does-both/), если вы тоже этого хотите.
Функция put предназначена для обработки HTTP-глагола PUT. Поэтому, если у вас есть PersonController с методом Put, который вы бы использовали в этом методе, например. обрабатывать обновление экземпляра человека.
Ответ 2
1) С помощью контроллера WebAPI вы можете просто вернуть json/xml, что даст вам преимущество: вы можете использовать любой клиент, а не только веб-браузер. Вы также получаете GET ajax по умолчанию в WebAPI.
2) Вы собираетесь использовать только веб-браузер? Используйте MVC. В противном случае? Используйте WebAPI и веб-браузер/как клиент для WebAPI.
3) возвращение json/xml.
4) Да.
5) Обновить объект.
6) Да.
Ответ 3
Я думаю, вам нужно попробовать следующую ссылку для дальнейшего понимания веб-API. Это решит все ваши сомнения.
http://www.asp.net/web-api