Публикация

подписчиков: 4 Подписаться
0
Avatar

Экранирование спец-символа

если есть документ, скажем, заказ покупателя, с наименованием "test;01"
поиск
?filter=name=test;01
разумеется, ничего не дает. как экранировать спец-символы?

Точка роста

Войдите в службу, чтобы оставить комментарий.

Комментариев: 7

0
Avatar

вот выдержка из вашей документации.

"Для фильтрации выборки по нескольким полям можно использовать url параметр filter. Значение этого параметра - urlencoded строка с поисковыми условиями, перечисленными через ;. (Все примеры ниже указаны без urlencoded для лучшей читаемости) Каждое поисковое условие - это сочетание названия поля, оператора и константы. "

 

Она обязывает нас выполнять это преобразование и оно не решает проблему.

Итоговый запрос выглядит, разумеется, вот так:

/?filter=name%3Dtest%3B01

и в ответ мы получаем ошибку разбора запроса 

{"errors":[{"error":"Ошибка фильтрации: Ошибка разбора фильтра '01'; Отсутствует оператор","code":1034,"moreInfo":"https://online.moysklad.ru/api/remap/1.1/doc#обработка-ошибок-1034"}]}
Точка роста 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

и когда проблема дойдет до специалиста, хотелось бы обратить его внимание, что это касается не только символа ; а в целом ВСЕХ спецсимволов rfc3986

Точка роста 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Вы же не попробовали, правда? Если в браузере набрать в строке адреса вот такой запрос

https://online.moysklad.ru/api/remap/1.1/entity/customerorder/?filter=name=test%3B01

то в ответ получаем 

{"errors":[{"error":"Ошибка фильтрации: Ошибка разбора фильтра '01'; Отсутствует оператор","code":1034,"moreInfo":"https://online.moysklad.ru/api/remap/1.1/doc#обработка-ошибок-1034"}]}

 

Точка роста 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar
Андрей 0 проголосовали
Действия с комментариями Постоянная ссылка