1

我正在使用 WSO2 API Manager 3.1.0,需要按一个 API 的 IN 序列访问 REST 端点。

我正在尝试使用 PayloadFactory 调解器以内联格式创建 JSON 有效负载。

<payloadFactory description="" media-type="json">
    <format>
      {"result":[{"id":"$1","description":"$2"}]}
    </format>
    <args>
        <arg evaluator="json" expression="get-property('uri.var.assetId')"/>
        <arg evaluator="json" expression="$trp:apisegutoken"/>
    </args>
</payloadFactory>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<call blocking="true">
    <endpoint>
        <address uri="http://postman-echo.com/get"/>
    </endpoint>
</call>

当我将自定义策略添加到 API IN 序列时,我收到以下错误:

[2020-01-13 17:21:26,422] WARN - SynapseXMLConfigurationFactory 序列配置:admin--NMGI:v1.0.0-- 无法构建 - 在故障安全模式下继续 com.jayway.jsonpath.InvalidPathException:非法字符位置 1 应为“。” 或 '[ 在 com.jayway.jsonpath.internal.path.PathCompiler.fail(PathCompiler.java:616) ~[json-path_2.4.0.wso2v2.jar:?] 在 com.jayway.jsonpath.internal.path.PathCompiler .readContextToken(PathCompiler.java:120) ~[json-path_2.4.0.wso2v2.jar:?] at com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:58) ~[json-path_2. 4.0.wso2v2.jar:?] 在 com.jayway.jsonpath.internal.path.PathCompiler.compile(PathCompiler.java:75) ~[json-path_2.4.0.wso2v2.jar:?] 在 com.jayway.jsonpath。 JsonPath.(JsonPath.java:101) ~[json-path_2.4.0.wso2v2.jar:?] at com.

我尝试了不同的 JSON 格式,结果相同。

¿ 在 中指定 JSON 的正确方法是什么?

4

1 回答 1

0

如果evaluator=json,则expression必须是 json 路径。但在您的情况下,它不是必需的,因为您正在读取查询参数和 HTTP 标头。

于 2020-01-14T05:45:59.240 回答