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

WSO2 API管理器原型API HTTP响应状态,wso2,wso2-am,api-manager,Wso2,Wso2 Am,Api Manager,我正在WSO2 API管理器中使用内联javascript原型功能,并尝试设置不同的HTTP响应状态。这可能吗?如果是的话,是如何做到的 到目前为止,我已经尝试设置HTTP_SC属性,但这似乎没有任何效果。 mc.setProperty('HTTP_SC',“404”)您需要在中介之前添加以下属性 <header name="To" action="remove"/> <property name="RESPONSE" value="true"/> <propert

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

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

您需要在
中介之前添加以下属性

<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>
<property name="HTTP_SC" value="403" scope="axis2"/>

您需要在中介之前添加以下属性

<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>
<property name="HTTP_SC" value="403" scope="axis2"/>

我也有同样的要求,经过深入探索,我终于找到了一个可行的解决方案

设置属性的原因:

mc.setProperty('HTTP_SC', "404");
不起作用的是需要在axis2范围内设置属性(正如Abimaran所说)。mc.setProperty未将其设置在该范围上。此外,MessageContext对象不提供设置范围的方法

“Deploy as Prototype”操作实际上是通过将指定的内联脚本合并到velocity模板中并将生成的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元素开始处的一个类似块(用于处理内容类型)之后立即添加了它

我也有同样的要求,经过深入探索,终于找到了一个可行的解决方案

设置属性的原因:

mc.setProperty('HTTP_SC', "404");
不起作用的是需要在axis2范围内设置属性(正如Abimaran所说)。mc.setProperty未将其设置在该范围上。此外,MessageContext对象不提供设置范围的方法

“Deploy as Prototype”操作实际上是通过将指定的内联脚本合并到velocity模板中并将生成的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元素开始处的一个类似块(用于处理内容类型)之后立即添加了它