Развертывание шаблона для управления API Azure с помощью swagger завершается с ошибкой «путь» не должен быть пустым - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь создать API и операции в Azure API Management с помощью функции импорта сваггера, используя шаблон, полученный из документации по адресу https://docs.microsoft.com/en-us/azure/templates/microsoft.apimanagement/2018-01-01/service/apis

Каждый раз, когда я развертываю свой API с помощью диспетчера ресурсов Azureшаблон для управления API Azure Я получаю сообщение об ошибке 'path' must not be empty.Что я делаю неправильно?Путь определенно не пустой!

В этом примере вы можете просто использовать любое допустимое содержимое файла чванства, например, по https://petstore.swagger.io/v2/swagger.json

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "apim_name": {
            "type": "string"
        },
        "api_name": {
            "type": "string"
        },
        "swagger_json": {
            "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.ApiManagement/service/apis",
            "name": "[concat(parameters('apim_name'), '/' ,parameters('api_name'))]",
            "apiVersion": "2018-06-01-preview",
            "properties": {
                "displayName": "Pet Store",
                "description": "Cool api def",
                "serviceUrl": "https://petstore.swagger.io/v2",
                "path": "petstore",
                "protocols": [
                    "https"
                ],
                "authenticationSettings": {
                    "oAuth2": null,
                    "openid": null,
                    "subscriptionKeyRequired": true
                },
                "subscriptionKeyParameterNames": {
                    "header": "Ocp-Apim-Subscription-Key",
                    "query": "subscription-key"
                },
                "contentValue": "[parameters('swagger_json')]",
                "contentFormat": "swagger-json"
            }
        }
    ]
}

1 Ответ

0 голосов
/ 31 января 2019

Кажется, API-интерфейсы менеджера ресурсов управления API суетливы в отношении параметров при использовании функции импорта сваггера, а документы и сообщения об ошибках немного отсутствуют.

Секрет в том, что определение файла подмены заменяет большинство свойств, которые вы обычно передаете для API в шаблоне, поэтому вам нужен значительно сокращенный шаблон, как показано ниже.

Надеюсь, это кому-нибудь поможетеще!

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "apim_name": {
            "type": "string"
        },
        "api_name": {
            "type": "string"
        },
        "swagger_json": {
            "type": "string"
        }
    },
    "resources": [
        {
            "type": "Microsoft.ApiManagement/service/apis",
            "name": "[concat(parameters('apim_name'), '/' ,parameters('api_name'))]",
            "apiVersion": "2018-06-01-preview",
            "properties": {
                "path": "petstore",
                "contentValue": "[parameters('swagger_json')]",
                "contentFormat": "swagger-json"
            }
        }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...