Может ли Управление Azure Api предоставлять документацию OpenAPI?

У нас есть некоторые функции Azure, доступные через управление API? Может ли Api Management автоматически предоставлять конечную точку /swagger, как это делает пакет Swashbuckle для API в Asp.Net.

Привет. Вы имеете в виду, как импортировать API с помощью swagger, docs.microsoft.com/en-us/azure/api-management/…

Inzi 08.05.2019 03:38

Чтобы автоматизировать это, мы можем использовать API-интерфейсы Azure ARM, docs.microsoft.com/en-us/rest/api/apimanagement/apis/…

Inzi 08.05.2019 03:40

В основном я думал о раскрытии той же функциональности, что и пакет Swashbuckle, генерирующий страницы чванства для Asp.Net. Добавил это в вопрос.

Mathias Rönnlund 08.05.2019 08:09
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
3
3
4 470
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Управление API Azure не может автоматически создать страницу swagger. Управление API Azure может только предоставить вам файл определения API. Затем вы можете использовать другие инструменты (такие как Интерфейс Swagger) с файлом определения для создания нужной вам страницы.

Кроме того, управление API Azure предоставило вам пользовательский интерфейс (https://youapimanagementname.portal.azure-api.net), чтобы рассказать вам, как использовать все API.

Хорошая идея, но я не уверен, что мы сможем предоставить ее таким образом пользователям API от наших партнеров.

Mathias Rönnlund 08.05.2019 09:23

APIM имеет вторую необязательную конечную точку управления: docs.microsoft.com/en-us/rest/api/apimanagement/…. После включения ее можно использовать так же, как ARM, для экспорта определений API. ИТ-отдел использует другой механизм аутентификации, поэтому он больше подходит для пользователей, у которых нет удостоверения ARM.

Vitaliy Kurokhtin 08.05.2019 19:34

Вы можете создать токен SAS для своих пользователей. Затем они могут вызывать с ним остальные API. Дополнительные сведения см. в статье docs.microsoft.com/en-us/rest/api/apimanagement/….

Md Farid Uddin Kiron 09.05.2019 04:53

Вы можете открыть свою документацию openapi через сам API. Документацию по API можно запросить на

https://management.azure.com/subscriptions/[subscriptionid]/resourceGroups/[resourcegroupname]/Microsoft.ApiManagement/service/[servicename]/apis/[apiid]?export=true&format=openapi&api-version=2021-01- 01-превью

Просто создайте дополнительную операцию (например, openapi.yaml) в своем API, вызовите указанный выше URL-адрес через настраиваемую политику и верните результат. Вы можете использовать следующую политику

<policies>
    <inbound>
        <base />
        <send-request mode = "new" response-variable-name = "result" timeout = "300" ignore-error = "false">
            <set-url>@("https://management.azure.com/subscriptions/{{azure-subscriptionid}}/resourceGroups/{{azure-resourcegroup}}/providers/Microsoft.ApiManagement/service/" + context.Deployment.ServiceName + "/apis/" + context.Api.Id + "?export=true&format=openapi&api-version=2021-01-01-preview")</set-url>
            <set-method>GET</set-method>
            <authentication-managed-identity resource = "https://management.azure.com/" />
        </send-request>
        <return-response>
            <set-status code = "200" reason = "OK" />
            <set-header name = "Content-Type" exists-action = "override">
                <value>application/yaml</value>
            </set-header>
            <set-body>@((string)(((IResponse)context.Variables["result"]).Body.As<JObject>()["value"]))</set-body>
        </return-response>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

Дополнительную информацию можно найти на странице https://www.devprotocol.com/2021/07/20/expose-openapi-documentation-on-azure-api-management.html.

Другие вопросы по теме