HttpTrigger по маршруту «проглатывает» другой HttpTrigger по маршруту - PullRequest
0 голосов
/ 23 января 2020

У меня действительно странная проблема с HttpTriggers в Azure Функции v2 (работает как локально, так и в Azure). У меня несколько служб, все с одним и тем же хостом. json file:

{
    "version": "2.0",
    "extensions": {
        "http": {
            "routePrefix": "api/asset"
        }
    }
}

В одной службе у меня 23 триггера. Соответствующие два:

  • HttpGetBasicDataByIdCodeAndCurrency с маршрутом v1/basicData/getByIdCodeAndCurrency (с двумя параметрами строки запроса idCode и currencyCode
  • HttpGetBasicDataById с маршрутом v1/basicData/{assetId}

Запуск его локально с использованием func start в терминале показывает, что все 23 функции подобраны во время выполнения, но открытие Chrome и просмотр http://localhost:7071/api/asset/v1/basicData/getByIdCodeAndCurrency?idCode=XXX&currencyCode=YYY приводит к срабатыванию HttpGetBasicDataById (я вижу, что в терминале, а также из сообщения об ошибке, отображаемого в браузере.) Было бы разумно, чтобы строка getByIdCodeAndCurrency рассматривалась как идентификатор в HttpGetBasicDataById, за исключением того, что та же схема прекрасно работает в другом сервисе со следующим функции (среди прочего): - HttpGetLegalEntity с маршрутом v1/legalentity/{legalEntityId} - FindLegalEntityByAccountId с маршрутом v1/legalentity/findByAccountId (принимая один параметр строки запроса accountId Вызов http://localhost:7071/api/client/v1/legalentity/findByAccountId?accountId=ZZZ работает просто отлично (возвращает юридическое лицо, содержащее данную учетную запись)

Как среда выполнения определяет, какой маршрут попадет?

...