如您所见,我添加了我的处理程序 org.wso2.carbon.samples.handlers.MyCustomHandler . 即使您更新velocity_templates.xml,'s it you should do. If you create and publish an API now, MyCustomHandler will be engaged with your API automatically. However, already published APIs won' t也会生效 . 您需要重新发布它们才能获得效果 .
2 回答
我假设你不想为所有API手动编辑API XML以使用自定义处理程序 . 相反,您希望在发布API时能够自动将处理程序引用到所有API . 您可以通过编辑$ APIM_HOME / repository / resources / api_templates / velocity_template.xml来完成 . 这是模板文件,它默认决定哪些处理程序与API接合 . 在此文件中,最后,您将找到一个处理程序部分 . 您需要编辑此文件并在其中添加处理程序,如下所示 .
如您所见,我添加了我的处理程序
org.wso2.carbon.samples.handlers.MyCustomHandler
. 即使您更新velocity_templates.xml,'s it you should do. If you create and publish an API now, MyCustomHandler will be engaged with your API automatically. However, already published APIs won' t也会生效 . 您需要重新发布它们才能获得效果 .就我而言,我有许多处理程序和许多API . 并非所有处理程序都适用于所有API,并且任何处理程序都不适用于所有API .
我通过在部署到API Manager的Carbon实例的WAR文件中创建独立的HTTP API来解决这个问题 . 调用WSO2 Publisher API的相同服务之后调用我的HTTP API . API将处理程序类名称作为参数,并将适当的元素注入到本地文件系统上的API定义XML文件中(我使用了JDOM) . API Manager会自动检测并重新加载修改后的XML,这样做很好 .