Управление API Azure: политика rewrite-uri не работает в версионном API - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть внутренний API, скажем:

GET https://bk.my.com/api/store/goods

, и я использую управление API Azure в качестве прокси.вот основные настройки для моего API «My Test API»

Web Service URL:  https://bk.my.com/
API URL suffix :  
                  Base URL
                  https://bk-xxx.azure-api.net

операция добавления API, вот настройки операции (интерфейс, я использую только это, другие настройки сохраняют настройки по умолчанию)

Display Name:   Get all goods
Name        :   get-all-goods
URL         :   GET  /api/store/goods

это работает.так как

https://bk-xxx.azure-api.net/api/store/goods => https://bk.my.com/api/store/goods

, теперь мне нужно добавить новую версию для этого API.Вот API v2 в бэкэнде.

GET https://bk.my.com/api/v2/store/goods

Я создаю имя API новой версии 'v2', используя классификацию заголовков

 GET https://bk-xxx.azure-api.net/[operation]
 api-version: v2

, поэтому в «My Test API»есть две версии

>My Test API       <operation>         <frontend>            <inbound>
    Original    ->  get-all-goods -> GET /api/store/goods

    v2          ->  get-all-goods -> GET /api/store/goods    <inbound>
                                                                <base />
                                                                <rewrite-uri template="/api/v2/store/goods" />
                                                              </inbound>

, когда я тестирую API v2, но он не работает, трассировка говорит:

configuration (0 ms)
{
    "message": "Unable to identify Api or Operation for this request. Responding to the caller with 404 Resource Not Found."
}

, затем я пытаюсь исправить операцию API v2, удалив rewrite-uri

>My Test API       <operation>         <frontend>            <inbound>
    Original    ->  get-all-goods -> GET /api/store/goods

    v2          ->  get-all-goods -> GET /api/v2/store/goods     

это работает сейчас.

поэтому мой вопрос, почему не работают rewrite-uri?

1 Ответ

0 голосов
/ 20 сентября 2019

Я не знаю, понимаю ли я твой вопрос, но что ты пытаешься сделать с этим rewrite -url ""?Вы хотите отправить запрос API на этот URL?Я имею в виду, это ваш backend-url?

Если так, то вы можете использовать заданную политику бэк-энда.

...