OData的Azure API管理问题

时间:2019-02-27 02:46:58

标签: odata azure-api-management

我们有一个OData v4 API,我们将其放在Azure API管理(AAM)服务的后面,但是在配置路由/操作时遇到了问题。简而言之,问题是除非明确配置AAM,否则AAM将拒绝对路由/操作的查询(您会收到404错误),但是使用OData,每个操作(端点)的每个属性(属性)都可以有一条路由)。该问题很快变得难以控制。

OData允许您查询单个属性/属性(例如GET〜/ api / Person(1234)/ FirstName。如果将其放在AAM后面,则需要将其定义为一个操作。只要有,就可以了)仅这些中的少数几个,但这潜在地意味着您必须快速定义数百/数千个操作(除非我错过了一些事情)。我们有一个包含约35个顶级操作的API。每个资源平均有20个属性。即700我们需要定义操作,除了涉及的工作之外,这对于AAM开发人员门户网站的用户来说将是令人震惊的体验。

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

1 个答案:

答案 0 :(得分:1)

尝试使用URL模板而不是显式地编写它们,即以这种方式为navigationOptions: ({ navigation as any }: any) 定义操作,使其与每个实体和每个实体的每个属性匹配。如果要在URL末尾捕获多个段,也可以使用通配符。