Как настроить webhook в Twilio на .Net Core Web API Controller? - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь получить запрос от Twilio через мой проект .NET Core Web API.Я не хочу использовать MVC.Я следовал учебному пособию в документации Twilio здесь при получении сообщения и возврате ответа, но, похоже, он работает только с проектом MVC.Я следовал указаниям построчно, но все равно «не радости».

Когда я пытаюсь достичь конечной точки через Почтальона, я получаю ответ 400 Bad Request.Тело говорит: "": ["Введенные данные недействительны."]

Twilio регистрирует ошибку как Ошибка - 11200 Ошибка поиска HTTP

Оба контроллера MVC и веб-API «если я не ошибаюсь» наследуют один и тот же базовый класс в .Net Core.Кто-нибудь знает, почему это не работает с контроллером Web API?

1 Ответ

0 голосов
/ 01 марта 2019

Вы, кажется, смущены вещами здесь.Там действительно нет таких вещей, как 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, ответ, скорее всего, вы можете , если вы реализуете тот же код, что и вы сами.

...