Я читаю несколько руководств Microsoft по APIM здесь: https://learn.microsoft.com/en-us/azure/api-management/import-and-publish
Я добрался до раздела о отслеживании (https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-api-inspector) и столкнулся с проблемой при попытке найти Идентификатор ресурса API.
Рассматриваемый API взят из API демонстрационной конференции Microsoft, который был импортирован, и API, которые я работаю правильно. Для этого вопроса в качестве примера я выберу API GetSpeakers.
Я выполнил инструкции, чтобы сделать POST-вызов из Postman к следующему API:
Я принял следующие значения:
subscribeId = идентификатор, взятый из раздела подписок, однозначно идентифицирующий подписку.
resourcesGroupName = текстовое имя группы ресурсов, содержащей APIM, например. мой-рг
serviceName = имя в тексте APIM, например. мой-APIM-тест
Я установил токен доступа в Postman на вкладке «Авторизация», тип аутентификации = предъявитель и вставил токен доступа в поле «Токен». Я добавил ключ подписки в заголовок под именем ocp-apim-subscription-key.
Я добавил тело, как подробно описано в уроке:
{ "credentialsExpireAfter": "PT1H", "apiId": "", "цели": ["отслеживание"] }
Я заметил опечатку на сайте и добавил двойные речевые знаки вокруг значения PT1H.
Моя проблема заключается в поиске идентификатора ресурса API для GetSpeakers (из API демонстрационной конференции).
URL-адрес запроса имеет формат:
https://my-apim-test.azure-api.net/conference-test/speakers
Я попытался ввести следующие значения для идентификатора ресурса API:
"https://my-apim-test.azure-api.net/conference-test/speakers"
"my-apim-test.azure-api.net/conference-test/speakers"
"/конференция-тест/спикеры"
"конференция-тест/спикеры"
"динамики"... были бы в шоке, если бы это сработало!
На все вышеперечисленное я получаю один и тот же ответ:
{
"error": {
"code": "ValidationError",
"message": "One or more fields contain incorrect values:",
"details": [
{
"code": "ValidationError",
"target": "apiId",
"message": "Invalid field 'apiId' specified"
}
]
}
}
Кто-нибудь знает, что подразумевается под идентификатором ресурса API и как его увидеть на портале?
Спасибо.


Вы можете получить APIId API либо с помощью Apis — List By Service Rest API, либо включив трассировку в экземпляре APIM.
Получите его с помощью Rest API-

Включив трассировку-

Я использовал тот же APIId в Шлюз — список учетных данных отладки, чтобы получить токен трассировки.

Огромное спасибо! Я проверил все, как вы сказали, и это сработало.
Нашел пример APIId на сайте Microsoft: "apiId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceeGroups/rg1/providers/Microsoft.ApiManagement/service/apimService1/apis/ a1" Я подставил туда свои значения, но не знаю, чем заменить apis/a1. Я пробовал: ".../my-apim-test/apis/conference-test/speakers" ".../my-apim-test/apis/conference-test" ".../my-apim- test/conference-test/speakers" ".../my-apim-test/conference-test" Ничего не работает.