Как вам следует учитывать тот факт, что события, полученные через веб-крючки, можно получать в произвольном порядке?
Например, с учетом следующего упорядоченного события:
- A: invoiceitem.created (с количеством 1)
- B: invoiceitem.updated (с количеством от 1 до 3)
- C: invoiceitem.updated (с количеством от 3 до 2)
Как убедиться, что получение C-A-B не приведет к повреждению данных (т. Е. С количеством 2 вместо 3)?
Вы могли бы отклонить webhook, если предыдущие_атрибуты в данных Event # не соответствуют текущему состоянию , но тогда вы застряли, если ваша локальная модель уже была обновлена, так как вы никогда не окажетесь в состояние, ожидаемое webhook.
Или вы можете просто использовать рассматривать любой веб-крючок как подсказку для извлечения и обновления объекта . Вы просто игнорируете данные, отправленные webhook, и всегда получаете их.
Даже если вы получаете события, заказанные как update / delete / create, он должен работать, так как update фактически создает объект, delete удаляет его, а create не может получить объект и ничего не делать.
Но это кажется пустой тратой ресурсов на получение данных каждый раз, когда веб-крючок предлагает их в качестве данных события.
Этот вопрос был задан ранее , но ответы не охватывают вышеуказанные решения.
Спасибо