Azure API OData 管理问题

Azure API Management issue with OData

我们有一个 OData v4 API,我们将其置于 Azure API 管理 (AAM) 服务之后,但是 运行 配置 routes/oerations 时遇到问题.简而言之,问题是 AAM 将拒绝对 route/operation 的查询,除非它被显式配置(您会收到 404 错误),但是对于 OData,每个属性都可以有一个路由(属性 ) 每个操作(端点)。问题很快变得难以控制。

OData允许查询一个个体attribute/property(eg GET ~/api/Person(1234)/FirstName。如果我们把这个放在AAM后面,我们需要定义它为一个操作。就可以了只要其中只有少数几个,但这可能意味着您必须很快定义 hundreds/thousands 操作(除非我错过了什么)。我们有一个 API 大约有 35 个顶级操作。每个资源平均有20个属性。那是我们需要定义的700个操作。除了所涉及的工作之外,这对于AAM开发人员门户的用户来说将是一个令人震惊的体验。

我希望有人能告诉我一个简单的方法来解决这个问题。我知道我可以编写脚本来创建这些。如果您使用 OData $select 查询参数(这是我同时建议的),您也可以在某种程度上解决这个问题。我无法克服我在这里错过了什么的感觉。有没有办法为操作定义某种通配符部分(例如/Person/*)?我在 AAM 文档中找不到类似的内容。

尝试使用 URL 模板而不是显式编写它们,即为 /{entity}/{property} 定义操作,这样它将匹配每个实体和每个实体的每个 属性。如果您想在 URL.

末尾捕获多个段,您也可以使用通配符