Shopify API webhooks игнорирует параметр формата

Вчера мы обнаружили, что при создании веб-перехватчика Shopify с помощью API указанный формат веб-перехватчика игнорируется.

Например:

>>> hook = shopify.Webhook()
>>> hook.topic = 'products/update'
>>> hook.address = '<REDACTED>'
>>> hook.format = 'json'
>>> hook.save()
True
>>> shopify.Webhook.find()
[webhook(2302062)]
>>> shopify.Webhook.get(2302062)
{'format': 'xml', 'created_at': datetime.datetime(2012, 11, 29, 12, 30, 55, tzinfo=tzutc()), 'updated_at': datetime.datetime(2012, 11, 29, 12, 30, 55, tzinfo=tzutc()), 'topic': 'products/update', 'address': '<REDACTED>', 'id': 2302062}

В приведенном выше примере мы пытаемся установить формат веб-перехватчика «json», но веб-перехватчик создается в формате «xml».

Раньше это работало. Вчера мы впервые столкнулись с этой проблемой.

Веб-перехватчики, созданные через интерфейс веб-администратора, по-прежнему позволяют правильно указывать формат как json, однако интерфейс веб-администратора не показывает никаких веб-перехватчиков, созданных через API, и наоборот.


person benburry    schedule 29.11.2012    source источник


Ответы (1)


Это была ошибка в shopify_python_api, где формат устанавливался для класса, а не для атрибута ресурса. Я только что исправил это и выпустил shopify_python_api в версии 1.0.3, поэтому проблема должна исчезнуть после обновления.

person Dylan Smith    schedule 29.11.2012
comment
Спасибо, Дилан - обновление 1.0.3 устранило проблему. Был ли изменен формат по умолчанию с json на xml в конце Shopify? Мне любопытно, как это раньше работало правильно. Есть ли у вас какие-либо комментарии относительно того, почему интерфейс веб-администратора не показывает какие-либо веб-перехватчики, созданные через API, или наоборот? - person benburry; 30.11.2012
comment
Я не уверен, почему это раньше работало, просто атрибут формата не отправлялся в запросе. Веб-перехватчики имеют право собственности, поэтому каждое приложение может видеть только свои собственные веб-перехватчики, и их можно удалить при удалении приложения. Для приложения они являются деталью реализации, и продавцы должны просто удалить приложение, а не веб-хук. - person Dylan Smith; 30.11.2012