我在尝试将多个请求查询参数插入REST API的URI时遇到以下问题。
我有以下情况。使用带有单个查询参数的URL( 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}">
...............................................................
...............................................................
...............................................................
但是如果我有多个查询参数除以&amp; 符号,就像这样:
<?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,我将收到此语法错误消息:
为什么呢?可能是什么问题呢?我错过了什么?我是否可能以某种方式逃脱&amp; 角色?如何解决此问题并在我的API中使用多个查询参数?
答案 0 :(得分:2)
由于这是一个XML配置文件,您需要将&
转义为&
。
在XML中,&
表示XML实体的开头(由;
终止)。因此,要在文档中使用实际的&
,您需要将其转义。
关于错误,在您的文档中,解析器将q2
视为实体的名称,但停止在=
进行解析,并得出结论:您有语法错误,因为它没有'看到;
结束实体。