[英]wso2 API Manager custom validations for API request input fields
有没有可以帮助我满足以下要求的示例代码。 我正在WSO2 API管理器中发布Rest API,我想拦截每个API的我自己的API输入字段验证,例如输入参数格式和值等。如果验证成功,则API管理器应允许请求调用后端,否则拒绝带有错误消息的请求。
我浏览了一些文档,并且我了解我们可以通过添加中介扩展和自定义处理程序来实现此目的,但是我找不到任何示例代码。
https://docs.wso2.com/display/AM140/Adding+a+Mediation+Extension
如果要编写自定义处理程序,是否应该为每个API编写它,并在API Synapsis文件中进行配置更改? 我想要一个可以为所有API调用的处理程序,并且处理程序将执行适用于该特定API的相应方法。
如果您需要访问处理程序中的消息正文,则可以使用以下代码块并访问消息正文。
SOAPEnvelope env = messageContext.getEnvelope();
if (env != null) {
SOAPBody soapbody = env.getBody();
}
另外,如果您需要构建消息,则也可以这样做。
将以下依赖项添加到您的处理程序实施项目中
<dependency>
<groupId>org.apache.synapse</groupId>
<artifactId>synapse-nhttp-transport</artifactId>
</dependency>
然后按以下方式将RelayUtils导入到处理程序中。
import org.apache.synapse.transport.passthru.util.RelayUtils;
然后按以下步骤在消息正文之前构建消息(必要时添加try catch块)。
RelayUtils.buildMessage(((Axis2MessageContext)messageContext).getAxis2MessageContext());
然后,您将可以按以下方式访问邮件正文。
<soapenv:Body><test>sanjeewa</test></soapenv:Body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.