odata - OData 的 Azure API 管理问题

标签 odata azure-api-management

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

OData 允许您查询单个属性/属性(例如 GET ~/api/Person(1234)/FirstName。如果我们把它放在 AAM 后面,我们需要将其定义为一个操作。只要有几个就可以了其中,但它可能意味着您必须很快定义成百上千个操作(除非我遗漏了一些东西)。我们有一个包含大约 35 个顶级操作的 API。每个资源平均有 20 个属性。那是 700 个操作我们会需要定义。除了所涉及的工作之外,对于 AAM 开发人员门户的用户来说,这将是一次令人震惊的体验。

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

最佳答案

尝试使用 URL 模板而不是明确地编写它们,即为 /{entity}/{property} 定义操作这样,它将匹配每个实体和每个实体的每个属性。如果您想在 URL 末尾捕获多个段,您也可以使用通配符。

关于odata - OData 的 Azure API 管理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54897254/

相关文章:

azure - 通过 oAuth2.0 保护 API 和通过入站策略验证 jwt 之间有什么区别?

azure - 从ARM模板获取API管理的公共(public)IP地址

javascript - 如何使用Javascript对Account以外的实体执行CRUD操作

visual-studio-2010 - Visual Studio 2010 中的 ODATA 模板

ado.net-entity-data-model - EDM关联问题

c# - 在 ODataController 中添加 WebAPI OData $orderby 选项

azure - 我可以在 Azure API 管理中使用多个身份验证提供程序吗?

azure - 我们是否需要多个 Azure API 管理实例?适用于 DEV、UAT、PROD 环境? [是的,我们这样做。含有溶液]

azure - 使用 terraform 在 Azure APIM api 中创建新操作

file - 通过 ODATA 传输文件