Я использую POST в REST API для создания объектов. Время от времени сервер будет создавать объект, но клиент будет отключен, прежде чем получит ответ 201 Created
. Клиент видит только неудачный запрос POST и повторяет попытку позже, и сервер с радостью создает дублирующий объект...
У других, должно быть, была эта проблема, верно? Но я google вокруг, и все просто, кажется, игнорируют это.
У меня есть 2 решения:
A) Вместо этого используйте PUT и создайте ID (GU) на клиенте.
B) Добавьте GUID ко всем объектам, созданным на клиенте, и обеспечьте, чтобы сервер выполнял их UNIQUE
-ness.
A не соответствует существующим фреймворкам очень хорошо, и B выглядит как хак. Как другие люди решают это, в реальном мире?
Edit:
С помощью Backbone.js вы можете установить идентификатор GUID в качестве идентификатора при создании объекта на клиенте. Когда он будет сохранен, Backbone выполнит запрос PUT. Сделайте REST backend handle PUT для несуществующих идентификаторов, и вы настроены.