Как использовать фильтр в Azure API Management Python SDK - PullRequest
0 голосов
/ 10 июля 2019

На основании документации, содержащейся в исходном коде Я пытаюсь получить доступ к API-управлению и фильтру для определенного продукта:

    credentials = ServicePrincipalCredentials(
        client_id=clientId,
        secret=secret,
        tenant=tenantId)

    client = ApiManagementClient(credentials, subscription_id)
    products = client.product.list_by_service(resource_group_name,service_name,filter="displayName eq 'INTERNAL'")

, который мне кажется действительным и согласно документации.

Однако я получаю эту ошибку:

azure.mgmt.apimanagement.models.error_response_py3.ErrorResponseException: указано недопустимое условие фильтра: 'DisplayName eq' INTERNAL ''.

1 Ответ

0 голосов
/ 10 июля 2019

Я пытался проверить исходные коды Azure API Management Python SDK, которые включают product_operations.py, [error_response_py3.py][1], msrest-for-python/msrest/serialization.py, очевидных проблем нет.

Затем, после того, как я попытался протестировать относительную функцию REST API Product - List By Service из ApiManagement.product.list_by_service, я обнаружил, что проблема может быть ошибкой.

Существует шестьполя могут использоваться в параметре $filter URI: name, displayName, description, terms, state и groups.Кроме groups, который я не знаю, как передать выражение corrent для $filter, я проверяю остальные пять полей, и только displayName не работает.

enter image description here

Значение api-version равно 2019-01-01, отклик json для %24filter=displayName%20eq%20%27Starter%27 в моем параметре uri указан ниже.

{
  "error": {
    "code": "ValidationError",
    "message": "Invalid filter clause specified: 'displayName eq 'Starter''.",
    "details": null
  }
}

Так что я думаю, что это не ваша ошибка при использованииPython SDK для управления API, это ошибка, которая, по-видимому, не реализована или по другой причине.

...