При работе с внешней службой вы не можете доверять собственному представлению о состоянии, в котором находятся их ресурсы. Даже если вы синхронизируете c все ваши запросы для вашей собственной системы, что-то еще может изменить ресурсы. Что если пользователь оставит окно редактирования открытым на несколько часов, а ресурс будет удален, а затем отправит изменения? Каждый запрос должен быть подготовлен для обработки ресурсов в любом возможном состоянии.
В этом случае все три запроса должны обрабатывать случай, когда ресурс не найден: доступ к ресурсу, его удаление или редактирование. Если пользователь пытается редактировать, а ресурс не существует, возможно, вы увидите сообщение типа «извините, этот ресурс не был найден или удален».
В качестве альтернативы, вместо удаления ресурсов, вы можете деактивировать их, если возможный. Это позволяет определить разницу между ресурсом, который не существует, и ресурсом, который был удален. Когда пользователь пытается получить доступ или отредактировать деактивированный ресурс, вы можете дать ему лучшее сообщение об ошибке («ресурс был удален» против «ресурс не найден») и, возможно, предложить восстановить ресурс.
Если доступно, вы может использовать такие функции, как веб-хуки и обратные вызовы, чтобы получать информацию об изменениях и обновлять собственное внутреннее состояние внешних ресурсов. Даже в этом случае они будут иметь задержку и не могут быть полностью доверенными.
В любом случае, каждый запрос не может доверять тому, что они знают состояние внешних ресурсов.