0

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

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

4

2 回答 2

3

我有同样的要求,经过大量探索后,我找到了一个可行的解决方案。

设置属性的原因:

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

其中 provider 似乎是 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)之后立即添加了它。

于 2016-04-14T03:57:20.733 回答
0

您需要在<send/>调解器之前添加以下属性

<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>
<property name="HTTP_SC" value="403" scope="axis2"/>
于 2016-01-25T20:51:07.710 回答