Вы, кажется, смущены вещами здесь.Там действительно нет таких вещей, как MVC или веб-API, когда дело доходит до ASP.NET Core.Контроллер это контроллер это контроллер.Тем не менее, начиная с ASP.NET Core 2.1, контроллеры «API» обычно теперь наследуются от ControllerBase
и имеют примененный атрибут ApiController
, в то время как контроллеры «MVC» наследуются от Controller
.Однако это только в том случае, если контроллер используется специально для API, ему не обязательно нужны все навороты Controller
, а атрибут ApiController
добавляет некоторые полезные функции, специфичные для API.С таким же успехом вы можете иметь контроллер «API», который унаследован от Controller
без атрибута ApiController
, или вы даже можете иметь контроллер «MVC», унаследованный от ControllerBase
.
Длинный и короткий,Термины являются простой семантикой.Вызов контроллера «API-контроллер» - это сокращение, означающее, что это контроллер, соответствующий спецификациям REST, и действия, которые возвращают что-то вроде JSON или XML, тогда как вызов контроллера «контроллер MVC» - это просто сокращение, указывающее, что это контроллер.чьи действия возвращают представления Razor.
Тем не менее, в документах Twilio вы на самом деле используете TwilioController
, который, хотя я и не копался в источнике, скорее всего, просто получен из ControllerBase
и реализует обработку webhookОбразец для вас.Таким образом, если ваш вопрос заключается в том, почему вы не можете использовать просто Controller
или ControllerBase
здесь вместо TwilioController
, ответ, скорее всего, вы можете , если вы реализуете тот же код, что и вы сами.