gpt4 book ai didi

regex - 如何在 Azure API 管理策略表达式中添加正则表达式验证

转载 作者:行者123 更新时间:2023-12-03 03:27:47 25 4
gpt4 key购买 nike

我需要在我的 Azure API 管理策略表达式中添加电子邮件的正则表达式验证,但没有可用的适当文档。

是否可以在 Azure APIM 中进行 RegEx 验证?

最佳答案

这可以通过setting a variable来完成使用 C# regex代码。

该变量可以在 choose 中使用进一步处理的政策

正则表达式匹配的完整策略返回结果:

<policies>
<inbound>
<base />
<set-variable name="isEMailValid" value="@{
var pattern = @"^((([!#$%&'*+\-/=?^_`{|}~\w])|((?!.*\.\.)[!#$%&'*+\-/=?^_`{|}~\w][!#$%&'*+\-/=?^_`{|}~\.\w]{0,}[!#$%&'*+\-/=?^_`{|}~\w]))[@]\w+([-.]\w+)*\.\w+([-.]\w+)*)$";
var body = (JObject)context.Request.Body.As<JObject>(true);

var regex = new Regex(pattern);
if(regex.Match(body["email"].Value<string>()).Success)
{
return true;
}
return false;
}" />
<return-response>
<set-status code="200" reason="OK" />
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>@{
var response = new JObject();
response["isEMailValid"] = context.Variables.GetValueOrDefault<bool>("isEMailValid");
return response.ToString();
}</set-body>
</return-response>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>

请求有效:

POST https://rfqapiservicey27itmeb4cf7q.azure-api.net/sample/ipsum HTTP/1.1
Host: rfqapiservicey27itmeb4cf7q.azure-api.net
{ "email": "[email protected]"}

响应有效:

HTTP/1.1 200 OK
content-length: 28
content-type: application/json
date: Fri, 03 Feb 2023 07:15:32 GMT
vary: Origin
{"isEMailValid": true}

enter image description here

请求无效:

enter image description here

关于regex - 如何在 Azure API 管理策略表达式中添加正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75332334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com