У меня действительно странная проблема с 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¤cyCode=YYY
приводит к срабатыванию HttpGetBasicDataById
(я вижу, что в терминале, а также из сообщения об ошибке, отображаемого в браузере.) Было бы разумно, чтобы строка getByIdCodeAndCurrency
рассматривалась как идентификатор в HttpGetBasicDataById
, за исключением того, что та же схема прекрасно работает в другом сервисе со следующим функции (среди прочего): - HttpGetLegalEntity
с маршрутом v1/legalentity/{legalEntityId}
- FindLegalEntityByAccountId
с маршрутом v1/legalentity/findByAccountId
(принимая один параметр строки запроса accountId
Вызов http://localhost:7071/api/client/v1/legalentity/findByAccountId?accountId=ZZZ
работает просто отлично (возвращает юридическое лицо, содержащее данную учетную запись)
Как среда выполнения определяет, какой маршрут попадет?