0

根据原始代码中包含的文档,我尝试访问 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''。

4

1 回答 1

0

我试图检查 Azure API Management Python SDK 的源代码,其中包括product_operations.py、 [ error_response_py3.py][1]msrest-for-python/msrest/serialization.py,没有任何明显的问题。

然后,在我尝试测试函数的相关 REST APIProduct - List By ServiceApiManagement.product.list_by_service,我发现问题可能是一个错误。

$filterURI 参数中可以使用六个字段: namedisplayNamedescriptionterms和。除了我不知道如何为 提供正确表达式之外,我测试了其余五个字段,但只是不起作用。stategroupsgroups$filterdisplayName

在此处输入图像描述

api-version值为,我的 uri 参数中的2019-01-01json 响应%24filter=displayName%20eq%20%27Starter%27如下。

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

所以我认为在使用 Azure API Management Python SDK 时这不是你的错误,这是一个似乎没有实现的错误或其他原因。

于 2019-07-10T07:46:38.937 回答