Follow us on Twitter X-Cart on Facebook Wiki
Shopping cart software Solutions for online shops and malls

Проблемы с RESTapi json запросами.
 
Reply
   X-Cart forums > X-Cart RUS > X-Cart на русском. Новости, вопросы и ответы
 
Thread Tools Search this Thread
  #1  
Old 09-08-2019, 10:00 AM
 
AlexR AlexR is offline
    
Join Date: Sep 2019
Posts: 1
 

Default Проблемы с RESTapi json запросами.

Не хочется писать в поддержку. Целый набор проблем разного рода с RESTAPI.

На примере 'product/0' (создание продукта).

1. При создании продукта содержимое body запроса (в json) игнорируется. Создаётся пустой продукт.

Если создавать товар и передавать свойства не через application/json, а через параметры самого url (x-www-form-urlencoded), все заданные свойства подхватываются ещё на этапе создания.

Eсли после создания продукта "пустого" сделать с тем же json body запрос на update (PUT) продукта, все значения переделаются на указанные в запросе. Наводит на мысль, что json оформлен верно.

В логах при создании нового продукта с помощью json появляются ошибки связанные с CloudSearch. Прямого отношения к проблеме не имеет.
Ошибки выглядят след. образом:
Quote:
Illegal string offset 'metaTags' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Core/StoreApiAbstract.php on line 787
Illegal string offset 'briefDescription' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Model/Product.php on line 27
Illegal string offset 'description' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Model/Product.php on line 27
Illegal string offset 'description' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Core/StoreApiAbstract.php on line 792
Illegal string offset 'metaTags' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Core/StoreApiAbstract.php on line 787
Illegal string offset 'briefDescription' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Model/Product.php on line 27
Illegal string offset 'description' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Model/Product.php on line 27
Illegal string offset 'description' in /var/www/<site>/var/run/classes/XLite/Module/QSL/CloudSearch/Core/StoreApiAbstract.php on line 792


2. х3 как отправлять запросы...

Все запросы, где их описание происходит через параметры URL работают откуда угодно. Как только описывается через json, начинаются проблемы.

Один и тот же запрос, где-то работает, где-то нет. (на самом деле работает более-менее только через Chrome/Restlet client... х3 почему так )
Code:
PUT http://www.my-site.com/admin.php?target=RESTAPI&_key=[API-KEY]&_path=product/[PRODUCT_ID]&_method=put HTTP/1.1 Content-Type: application/json {"sku": "123qweasdzxc"}

Через какое-то время body с json - перестали обрабатываться вообще, как будто их нет. Ответ от сервера при этом всегда приходит. Код 200 и в body json со всем описанием товара.

Сервис Google Script, например, показывает 400 ошибку при стандартном способе обращения.

Code:
function test() { try { var url = "http://www.my-site.ru/admin.php?target=RESTAPI&_key=[API-KEY]&_path=product/[PRODUCT_ID]&_method=put"; var data = { "sku" : "123qweasdzxc" }; var options = { "method" : "PUT", "contentType" : "application/json", "payload" : JSON.stringify(data) // объект data в json строку }; var result = UrlFetchApp.getRequest(url, options); Logger.log(result); var result = UrlFetchApp.fetch(url, options); Logger.log(result); } catch (e) { Logger.log(e); } }

Вариант с application/x-www-form-urlencoded работает везде.
Вариант с application/json ваще х3 как работает %).

Сказать, что он вообще не работает, не могу, но похоже работает не так, как "задокументировано".

По второму вопросу больше всего вымораживает, что с Chrome/Restlet client по-прежнему любой запрос работает (не уверен, что стабильно, но работает), а при обращении из других источников - нет, вот совсем нет. Даже если работали, то перестали. %)

Половина проблем, конечно, кривые руки, но, вспоминается, что не работал корректно импорт через xls/csv файлы на стороне x-cart и уже не кажется странной мысль, что и с импортом через API что-то тоже не так.
__________________
5.3.6.1
Reply With Quote
Reply
   X-Cart forums > X-Cart RUS > X-Cart на русском. Новости, вопросы и ответы


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -8. The time now is 10:12 AM.

   

 
X-Cart forums © 2001-2018