对于WSO2 api管理器,处理程序和序列之间的区别或关系是什么。
我想为每个api提供一些条件。根据条件,它将检查api请求是否已通过该条件。如果我需要使用序列或处理程序,我不确定。
答案 0 :(得分:5)
这个答案假定通过" sequence"用户意味着调解序列,"它们是通过APIManagerExtensionHandler处理程序运行的(中介可以是全局的,也可以是每个API,但据我所知,它在同一个地方执行)。
中介序列和处理程序都是在网关收到响应或请求后运行的代码扩展。处理程序扩展org.apache.synapse.rest.AbstractHandler
类,需要实现AbstractHandler.handleRequest
和AbstractHandler.handleResponse
;调解员扩展org.apache.synapse.mediators.AbstractMediator
类并要求实施AbstractMediator.mediate
。
自定义处理程序和中介序列之间的主要区别在于,使用自定义处理程序需要您编写自己的Java类,然后打包并部署处理程序。如果使用预定义的调解器(由WSO2和ESB提供)组合满足您的要求,那么您可以编写XML序列来定义调解任务,而无需新代码。
根据我的经验,这里是处理程序和中介序列之间的主要区别。使用一个在另一个上面应根据您的具体要求确定。
<强>处理程序强>
调解序列
简而言之:如果现有调解员的某些组合将实现您的目标,使用调解序列最有意义(即使它是&#34;关闭,但不完全,#34;写一个自定义中介可以比创建一个全新的处理程序更容易。如果您需要更高级别的自定义或要求在所有其他中介执行之前或之后进行调解,则应考虑编写处理程序。
编辑:实际回答具体问题:您可以非常轻松地使用中介序列对请求标头中的值进行逻辑检查。如果你需要阅读正文内容,这些检查会变得有点困难......在这种情况下,自定义处理程序基本上是你唯一的选择。