我正在WSO2 API管理器中使用内联javascript原型功能,并尝试设置不同的HTTP响应状态。这可能吗?如果是这样,是如何做到的?
到目前为止,我已经尝试设置HTTP_SC属性,但这似乎没有任何效果。mc.setProperty('HTTP_SC', "404");
我也有同样的要求,经过深入探索,我找到了一个可行的解决方案。
设置属性的原因:
mc.setProperty('HTTP_SC', "404");
不起作用的是,该属性需要设置在axis2范围内(正如Abimaran所说)。mc.setProperty没有在该作用域上设置它。此外,MessageContext对象没有提供设置范围的方法。
"部署为原型"操作实际上通过将指定的内联脚本合并到速度模板中并将生成的API定义存储到文件中来创建API定义文件。
- 模板:/repository/resources/api_templates/prototype_template.xml
- 输出位置:repository/deployment/server/synapse configs/default/api/
输出文件的名称格式为:
提供程序--API名称-vVERSION.xml
其中提供者似乎是API创建者的用户名。
我所做的是在模板中添加一个过滤器:
<filter source="boolean(get-property('HTTP_SC'))" regex="false">
<then>
<property name="HTTP_SC" value="200" scope="axis2"/>
</then>
<else>
<property name="HTTP_SC" expression="get-property('HTTP_SC')" scope="axis2"/>
</else>
</filter>
我在inSequence元素开头的类似块(用于处理CONTENT_TYPE)之后立即添加了它。
您需要在<send/>
中介之前添加以下属性
<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>
<property name="HTTP_SC" value="403" scope="axis2"/>