2017-12-13 10 views
0

複数のリクエストクエリパラメータをREST APIのURIに挿入しようとすると、次のような問題が発生します。複数のURIクエリパラメータを持つWSO2 ESB APIを保存しようとすると、この構文エラーが発生するのはなぜですか?

私は次のような状況があります。単一のクエリパラメータ(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つのパラメータを持っているリソース見ることができるように:

enter image description here

理由:私は私のAPIを保存した場合

は今、私はこの構文エラーメッセージを取得するのですか?何が問題なの?私は何が欠けていますか?私は多分何らかの方法で脱出することができました&文字?この問題を解決し、APIで複数のクエリパラメータを使用するにはどうすればよいですか?

答えて

2

これはXML設定ファイルなので、&から&amp;にエスケープする必要があります。

&は、XMLエンティティの開始を示します(これは、;で終了します)。したがって、文書内に実際に&を表示するには、それをエスケープする必要があります。

エラーに関しては、あなたの文書に、パーサは、エンティティの名前としてq2を参照してください、しかし=での解析を停止し、それが終了する;見なかったとしてあなたは、構文エラーを持っていると結論しますエンティティ。

関連する問題