WSO2 API管理器原型API HTTP响应状态

时间:2016-01-12 08:21:12

标签: wso2 wso2-am api-manager

我在WSO2 API管理器中使用内联javascript原型功能,我正在尝试设置不同的HTTP响应状态。这可能吗?如果是这样,它是如何完成的?

到目前为止,我已尝试设置HTTP_SC属性,但这似乎没有任何效果。      mc.setProperty('HTTP_SC', "404");

2 个答案:

答案 0 :(得分:1)

我有同样的要求,经过多次探索后,能够找到一个可行的解决方案。

设置属性的原因:

mc.setProperty('HTTP_SC', "404");

不起作用是需要在axis2范围内设置属性(如Abimaran所说)。 mc.setProperty不会在该范围上设置它。而且,MessageContext对象不提供设置范围的方法。

“部署为原型”操作实际上通过将指定的内联脚本合并到速度模板中并将生成的API定义存储到文件中来创建API定义文件。

  • 模板:./存储库/资源/api_templates/prototype_template.xml
  • 输出位置:repository / deployment / server / synapse-configs / default / api /

输出文件的格式为:

provider - API Name-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)之后立即添加它。

答案 1 :(得分:0)

您需要在<send/>介体

之前添加以下属性
<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>
<property name="HTTP_SC" value="403" scope="axis2"/>