0

我在尝试将多个请求查询参数插入 REST API 的 URI 时遇到以下问题。

我有以下情况。使用带有单个查询参数(process_phase_id={process_phase_id})的 URL 可以正常工作,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/enutrifood/bylocation" name="ENutriFoodByLocation" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET" uri-template="/{localizationId}/messages?process_phase_id={process_phase_id}">
    ...............................................................
    ...............................................................
    ...............................................................

但是,如果我有多个查询参数除以&符号,则如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/enutrifood/bylocation" name="ENutriFoodByLocation" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET" uri-template="/{localizationId}/messages?process_phase_id={process_phase_id}&q2={v2}">
    ...............................................................
    ...............................................................
    ...............................................................

正如您现在看到的,该资源有 2 个参数:

<resource methods="GET" uri-template="/{localizationId}/messages?process_phase_id={process_phase_id}&q2={v2}">

现在,如果我保存我的 API,我将收到以下语法错误消息:

在此处输入图像描述

为什么?可能是什么问题呢?我错过了什么?我是否可能以某种方式逃避&字符?如何解决此问题并在我的 API 中使用多个查询参数?

4

1 回答 1

2

由于这是一个 XML 配置文件,您需要将 to&转义&amp;

在 XML 中,&表示 XML 实体的开始(由 a 终止;)。所以要在你的文档中有一个实际&的,你需要转义它。

至于错误,在您的文档中,解析器将q2其视为实体的名称,但会停止解析=并断定您有语法错误,因为它没有看到 a;来结束实体。

于 2017-12-13T15:55:02.663 回答