验证内容返回 json 内容类型 Azure Api 管理策略的错误

问题描述 投票:0回答:3
azure validation content-type azure-api-management policies
3个回答
5
投票

我遇到了同样的问题,并且能够找到一种方法来重现和解决。

如果您的操作未定义任何表示并使用验证内容策略,您将收到此错误。

最简单的修复:单击“操作”,在“前端”下选择基于表单的编辑器(铅笔图标)。单击“请求”选项卡。在“表示”下,单击“添加表示”。搜索“json”并选择“application/json”。保存前端更改。

现在操作和验证内容应该可以正常运行。

我希望对某人有帮助。


0
投票

validate-content
策略用于根据 API 架构验证请求或响应正文的大小或 JSON 架构。除 JSON 外,不支持其他格式。

以下示例显示了如何验证请求和响应中的 JSON 负载。有效负载大于 100 KB 的消息将被阻止。

<validate-content unspecified-content-type-action="prevent" max-size="102400" size-exceeded-action="prevent" errors-variable-name="requestBodyValidation">
    <content type="application/json" validate-as="json" action="detect" />
    <content type="application/hal+json" validate-as="json" action="detect" />
</validate-content>

我建议阅读 Microsoft 的此用于验证请求和响应的 API 管理策略文档,以获取有关

validate-content
策略的详细信息。

这应该可以解决您面临的问题。但如果您仍然遇到相同的错误,请向Azure 支持提出请求。


0
投票

这有点乱,但我

iravenscroft
answer帮助我解决了这个问题。我只是想提供一些额外的背景信息。

我添加了我的内容类型,如链接答案中所述:

然后在您想要的位置添加您的

validate-content
政策:

<validate-content unspecified-content-type-action="prevent" max-size="102400" size-exceeded-action="prevent" errors-variable-name="validationError">
    <content type="application/vnd.my-content-type+json" validate-as="json" action="prevent" schema-id="my-schema-id" />
</validate-content>

在我的例子中,

my-schema-id
是在实例级别上传的模式:

这样,验证就可以按预期进行。

© www.soinside.com 2019 - 2024. All rights reserved.