Используя службы управления API Azure, удалите дополнительное пространство из запроса JSON - PullRequest
0 голосов
/ 13 декабря 2018

Я использую Azure API Management Services для регистрации запросов и ответов API.

Теперь у меня есть требование удалить дополнительное пространство из входящего запроса JSON. Я пробовал так много вещей, как «найти и заменить» иЗамените фильтр, но не можете его достичь.

eg: Incoming request
body.FullName ="XYZ   ABC"

<set-body template="liquid">
 {    
   "Id": "{{body.Id}}",
   "FullName":"{{body.FullName]}}"       
 }
</set-body>

Как вы видите выше в FullName между XYZ и ABC есть три пробела.Мое требование - убрать лишние пробелы между ними, как вы видите в примере ниже.

Final output would be :
{
"Id" : 12
"FullName" : "XYZ ABC"
}

1 Ответ

0 голосов
/ 14 декабря 2018

Если вы хотите сделать это только для определенных свойств, попробуйте:

<set-body template="liquid">
 {    
   "Id": "{{body.Id}}",
   "FullName":"{{body.FullName | split: " " | join: " "}}"       
 }
</set-body>

Кажется, нет лучшего способа сделать это в жидкости.

Если вы хотите сделатьчто во всем теле, не анализируя его структуру, тогда:

<set-body>@(Regex.Replace(context.Request.Body.As<string>(), @"\s+", " "))</set-body>

В качестве альтернативы вы можете проанализировать все тело как JObject и выполнить итерацию рекурсивно исправляя каждое значение свойства.

...