2017-09-19 8 views
0

쿼리 매개 변수 (선택 사항)를 사용하려고합니다. 그러나 내 백엔드 SOAP 서비스에 대한 내 본문 매핑에서이 매개 변수에 액세스하려고하면 결과가 표시되지 않습니다.Azure API 관리 - 선택적 매개 변수

이처럼 매개 변수를 정의했습니다. Query parameters

그리고이 코드로 Liquid 템플릿에 액세스하려고합니다.

{{context.Request.Url.Query.GetValueOrDefault("test","false")}} 

그러나 결과는 단지 비어 있습니다. 누군가 제가 여기서 잘못하고있는 것을 찾도록 도와 줄 수 있습니까?

답변

0

대신 context.Request.OriginalUrl을 사용해보세요. OriginalUrl은 게이트웨이에 들어오는 것입니다. context.Request.Url은 백엔드 용으로 다시 작성된 것입니다.

+0

방금 ​​시도했지만 요청 메시지에서 여전히 비어 있습니다. 이상하게도, set-body 바로 전에 동일한 매개 변수에 추적을 추가하면 값을 얻을 수 있습니다. 하지만 세트 바디에서 접근하려고하면 비어 있습니다. 변수를 먼저 넣어도. –

+1

@ TimD'haeyer Ahhh, 문제가 있습니다. 불행히도 액체 바인딩과 C# 식은 같은 방식으로 작동하지 않습니다. 당신이하고있는 것은'@ (...)'또는'@ {...} '안에 들어가야하는 C# 표현식입니다. 불행히도 액체 바인딩은 배열에 접근하는 것을 지원하기 때문에 액체 템플릿 내에서 그 구문을 복제 할 수 없습니다. 지도. 당신은'{{context.Request.OriginalUrl.Query.test [0]}}'을 할 수 있어야하지만 현재는 저를 위해 일하지 않습니다. 나는 이유를 조사하고있다. –

+0

Darrel에게 감사드립니다. 귀하의 코드가 나를 위해 일했습니다. :-) –