Программный вызов конвейера запросов ASP.NET Core - PullRequest
0 голосов
/ 18 мая 2018

Вопрос

Есть ли способ программно вызывать конвейер запросов ASP.NET Core из моего собственного приложения, если у меня есть HTTP-глагол, маршрут, заголовки и содержимое тела?

Справочная информация

В некоторых случаях WebAPI нашего приложения ASP.NET Core недоступен, так как приложение работает за брандмауэром или недоступно по другим причинам.

Для предоставления решениядля этого сценария мы хотим, чтобы наше приложение опрашивало какой-то другой сервис на предмет «рабочих элементов», которые затем переводятся в вызовы API в нашем приложении.

Подходы, которые я рассмотрел

  • Я мог бы, вероятно, простопопросите DI дать мне экземпляр контроллера и затем вызвать методы для него.Проблемы с этим подходом:
    • Атрибуты авторизации не применяются.Но в нашем сценарии использования важно проверить токен на предъявителя.Поэтому здесь возникает вопрос: как программно вызвать промежуточное ПО авторизации?
    • Мне бы пришлось самому перенаправлять входящие рабочие элементы на правильный контроллер / метод.
  • Используя пакет Microsoft.AspNetCore.TestHost, я могу создать TestClient, который позволит мне делать запросы самому себе (см. здесь ).Но здесь есть несколько неопределенностей:
    • Предполагаемый вариант использования этого TestHost предназначен для интеграционного тестирования.Безопасно ли использовать это в производственной среде?
    • Возможно ли даже, чтобы такой TestServer работал параллельно с обычным хостингом?
    • Как насчет безопасности потоков?Могу ли я создать несколько TestClients из одного TestServer экземпляра и использовать их из разных потоков?

Так что я уверен, что должен быть более чистый и прямой способпрограммно вызывать конвейер запросов из моего собственного приложения ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...