Я создал REST API со спецификацией Swagger / OPEN API, который я хотел бы использовать через клиент управления API Azure в приложении логики.
Когда я скачиваю спецификацию, она выглядит так:
{
"swagger": "2.0",
"info": {
"title": "Leasing",
"version": "1.0"
},
"host": "ENDPOINT.azure-api.net",
"basePath": "/leasing",
"schemes": [
"http",
"https"
],
"securityDefinitions": {
"apiKeyHeader": {
"type": "apiKey",
"name": "Ocp-Apim-Subscription-Key",
"in": "header"
},
"apiKeyQuery": {
"type": "apiKey",
"name": "subscription-key",
"in": "query"
}
},
"security": [
{
"apiKeyHeader": []
},
{
"apiKeyQuery": []
}
],
"paths": {
"/{Brand}/groups": {
"get": {
"description": "Get a list of leasing groups on a brand",
"operationId": "GetGroups",
"parameters": [
{
"name": "Brand",
"in": "path",
"description": "Selection of possible brands",
"required": true,
"type": "string",
"enum": [
"Volkswagen",
"Audi",
"Seat",
"Skoda",
"VolkswagenErhverv",
"Porsche",
"Ducati"
]
}
],
"responses": {
"200": {
"description": "Returns a list of leasing groups",
"schema": {
"$ref": "#/definitions/GroupArray"
}
},
"400": {
"description": "If the brand is not valid",
"schema": {
"$ref": "#/definitions/Error"
}
}
},
"produces": [
"application/json"
]
}
}
},
"definitions": {
"Group": {
"type": "object",
"properties": {
"id": {
"format": "int32",
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"leasingModelCount": {
"format": "int32",
"type": "integer"
},
"lowestMonthlyFee": {
"format": "int32",
"type": "integer"
}
}
},
"Error": {
"type": "object",
"properties": {
"code": {
"enum": [
"NotValidBrand",
"NotValidGroupId"
],
"type": "string",
"x-ms-enum": {
"name": "ErrorCode",
"modelAsString": true
}
},
"message": {
"type": "string"
}
}
},
"GroupArray": {
"type": "array",
"items": {
"$ref": "#/definitions/Group"
}
}
}
}
Когда я добавляю это в приложение логики с коннектором HTTP + Swagger
, я могу определить только ввод запроса {Brand}, но не различные способы использования ключа подписки (заголовок или запрос), как определено в SecurityDefiniations
.
Целые разделы securityDefinitions
и security
автоматически создаются в службе управления API Azure, но не распознаются в приложении логики.
См. Изображение поля с отсутствующим ключом подписки:
Что я делаю неправильно?
Обновить
Я пробовал следующее:
- Использование поля «Аутентификация» (но это поле ограничено определенными типами потоков аутентификации https://docs.microsoft.com/en-us/azure/connectors/connectors-native-http#authentication)
- Измените действие Http + Swagger приложения Logic в коде, чтобы добавить параметр заголовка, но это действие преобразует действие в простое действие Http и, следовательно, теряет автоматическое создание схемы из Swagger.