Я получил ответ от службы поддержки Azure, поделившись информацией здесь:
Конечные точки APIM определяются путем, методом и именем, которое вы назначаете для операции.Чтобы различать две конечные точки GET для одного и того же контроллера, отличающиеся только параметрами запроса, необходимо жестко закодировать требуемые параметры запроса в пути.См. Следующие два изображения:
На последнем изображении это жестко закодированный запросПараметр классифицируется пользовательским интерфейсом как параметр шаблона, но он по-прежнему ведет себя как обычный параметр запроса.Аргументы запроса, определенные следующим образом:
- Требуются
- Может появляться в любом месте списка аргументов запроса в запросе
- Не чувствительны к регистру
- Перечислены в качестве «параметра запроса» вместе со всеми другими параметрами пути и аргументами запроса на портале разработки
Редактировать:
Существует опечатка вскриншоты.URL-адреса чувствительны к регистру, и в каждом случае регистр «бла» был разным.Вот как выглядит спецификация Open API, когда корпус согласован.Перегруженный путь (с параметром запроса, жестко запрограммированным в шаблоне пути) появляется в разделе с именем x-ms-paths
:
{
"swagger": "2.0",
"info": {
"title": "Echo API",
"version": "1.0"
},
"host": "<hostUrl>",
"basePath": "/echo",
"schemes": ["https"],
"securityDefinitions": {
"apiKeyHeader": {
"type": "apiKey",
"name": "Ocp-Apim-Subscription-Key",
"in": "header"
},
"apiKeyQuery": {
"type": "apiKey",
"name": "subscription-key",
"in": "query"
}
},
"security": [{
"apiKeyHeader": []
}, {
"apiKeyQuery": []
}],
"paths": {
"/Blah": {
"get": {
"operationId": "blah",
"summary": "Blah",
"responses": {}
}
}
},
"tags": [],
"x-ms-paths": {
"/Blah?alpha={alpha}": {
"get": {
"operationId": "blah2",
"summary": "Blah2",
"parameters": [{
"name": "alpha",
"in": "query",
"required": true,
"type": "string"
}],
"responses": {}
}
}
}
}