Предоставление документации с помощью управления API azure

#swagger #openapi #azure-api-management

Вопрос:

У меня есть API, настроенный в управлении API azure. Он был настроен с использованием OpenAPI, так как у нас есть документация swagger для API. Теперь я хочу отправить этот API внешним клиентам и предоставить им страницу документации для просмотра того, как использовать API. Так как же мне разоблачить чванство index.html страница во внешний мир и не требует ключа подписки для ее просмотра?

Я попытался добавить новую конечную точку API /swagger и добавил следующее при входящей обработке :

     <set-backend-service base-url="https://myapi.azurewebsites.net" />
    <rewrite-uri template="/index.html" />
 

Но я получаю обратно чистую страницу. Похоже, что CSS и JS-это 404:

введите описание изображения здесь

Комментарии:

1. Если я добавлю uri перезаписи как /swagger/v1/swagger.json, я смогу просмотреть документацию по JSON, но не смогу просмотреть HTML-страницу по вышеуказанным причинам.

2. Если мы не можем найти решение для перенаправления веб-страницы, мы можем использовать портал разработчика azure apim . Azure apim предоставляет портал разработчика, на котором пользователи могут просматривать все опубликованные API, а также подробную информацию об этих API.

Ответ №1:

У меня есть идея, которая могла бы стать для вас вариантом.

У меня есть служба, вызов https://f0xxx2bc.ngrok.io/view которой приведет к получению html-кода в браузере. Если я добавлю конечную точку в apim, чтобы установить ее подключение к URL моей веб-страницы, она может отображать содержимое, но файл css потерян(ошибка 404, как у вас). Согласно сообщению об ошибке, мы можем найти его результаты по URL-адресу ошибки, другими словами, мы не можем посетить файл css напрямую через экземпляр apim. Таким образом, мы можем использовать только URL-адрес сервера html-страницы.

введите описание изображения здесь

Моя идея в этой проблеме состоит в том, чтобы перенаправить конечную точку на мой URL-адрес. Но, похоже, нет никакой разницы в том, чтобы предоставлять этот URL-адрес пользователям. Поэтому я предпочитаю предложить вам использовать портал разработчиков apim, его можно рассматривать как официальный инструмент для отображения всех подробностей об использовании api.

После создания новой конечной точки мы можем установить для нее политику входящих сообщений и перенаправить ее на вашу веб-страницу, используя URL-адрес html в вашей внутренней службе. Но это сделает ваш внутренний URL-адрес доступным в браузере.

Вот моя политика тестирования, и после ее настройки, когда я посещаю конечную точку api, она может перенаправлять на мою html-страницу, и файл css, безусловно, работает.

 <inbound>
        <base />
        <choose>
            <when condition="true">
                <return-response>
                    <set-status code="303" reason="reason" />
                    <set-header name="Location" exists-action="override">
                        <value>@("https://fxxxxdc2bc.ngrok.io/view")</value>
                    </set-header>
                </return-response>
            </when>
        </choose>
    </inbound>
 

Ответ №2:

Спасибо за всю помощь, ребята. Я как-то не знал, что портал для разработчиков-это вещь! Я просто играю с настройкой этого сейчас, и это потрясающе! Как раз то, что мне было нужно.

Для тех, кто не может найти его, как я, он здесь :

введите описание изображения здесь

Спасибо!