Сообщение Re[18]: Идемпотентность POST - хорошая ли практика? от 27.09.2022 7:35
Изменено 27.09.2022 7:44 Pauel
Re[18]: Идемпотентность POST - хорошая ли практика?
Здравствуйте, gandjustas, Вы писали:
P>>>>Всех участников
G>>>И как клиент может проконтролировать?
G>Какие обязанности у клиента?
Обычные — сделать запрос в соответствии с его семантикой. Если АПИ говорит о том, что операция идемпотентна, то на клиенской стороне надо сделать N соответствующих приседаний.
P>>Из описания API. Обычно клиент генерируется, а не пишется руками.
G>В каком описании присутствует информация об идемпотентности тех или иных вызовов?
Я привел описание, вернись и посмотри. Выглядит так, будто ты накидываешь не читая.
P>>Что не так с этими операциями? Вот есть у тебя ключ x-y-z, метод POST и кучка add-remove-copy. Если сервер поддерживает идемпотентность для этой операции, то какие проблемы?
G>Я не очень понимаю что значит "поддерживает" когда мы говорим об операциях вроде add-remove-copy. В зависимости от порядка выполнения набора add-remove-copy результат может быть разный.
Что мешает зафиксировать этот порядок?
> еЕли мы повторяем вызовы, то порядок выполнения не будет совпадать с изначальным порядком вызовов.
Как то странно выполнять приседания пачкой каждый раз. Если хочешь, что бы батч, а add-remove-copy, это фактически батч, был идемпотентным, то надо приложить чуть больше усилий, чем просто выполнять и ждать результата.
Например, порядок должен быть зафиксирован, эта пачка операций идет внутри транзакции, и выполняется ровно один раз, не больше, и не меньше. Отсюда не ясно, как ты собиаешься получить "разный" результат.
P>>>>Всех участников
G>>>И как клиент может проконтролировать?
G>Какие обязанности у клиента?
Обычные — сделать запрос в соответствии с его семантикой. Если АПИ говорит о том, что операция идемпотентна, то на клиенской стороне надо сделать N соответствующих приседаний.
P>>Из описания API. Обычно клиент генерируется, а не пишется руками.
G>В каком описании присутствует информация об идемпотентности тех или иных вызовов?
Я привел описание, вернись и посмотри. Выглядит так, будто ты накидываешь не читая.
P>>Что не так с этими операциями? Вот есть у тебя ключ x-y-z, метод POST и кучка add-remove-copy. Если сервер поддерживает идемпотентность для этой операции, то какие проблемы?
G>Я не очень понимаю что значит "поддерживает" когда мы говорим об операциях вроде add-remove-copy. В зависимости от порядка выполнения набора add-remove-copy результат может быть разный.
Что мешает зафиксировать этот порядок?
> еЕли мы повторяем вызовы, то порядок выполнения не будет совпадать с изначальным порядком вызовов.
Как то странно выполнять приседания пачкой каждый раз. Если хочешь, что бы батч, а add-remove-copy, это фактически батч, был идемпотентным, то надо приложить чуть больше усилий, чем просто выполнять и ждать результата.
Например, порядок должен быть зафиксирован, эта пачка операций идет внутри транзакции, и выполняется ровно один раз, не больше, и не меньше. Отсюда не ясно, как ты собиаешься получить "разный" результат.
Re[18]: Идемпотентность POST - хорошая ли практика?
Здравствуйте, gandjustas, Вы писали:
P>>>>Всех участников
G>>>И как клиент может проконтролировать?
G>Какие обязанности у клиента?
Обычные — сделать запрос в соответствии с его семантикой. Если АПИ говорит о том, что операция идемпотентна, то на клиенской стороне надо сделать N соответствующих приседаний. Разумеется, это все делается самим клиентом по метаданным, а не вручную отсылая запрос POST.
P>>Из описания API. Обычно клиент генерируется, а не пишется руками.
G>В каком описании присутствует информация об идемпотентности тех или иных вызовов?
Я привел описание, вернись и посмотри. Выглядит так, будто ты накидываешь не читая.
P>>Что не так с этими операциями? Вот есть у тебя ключ x-y-z, метод POST и кучка add-remove-copy. Если сервер поддерживает идемпотентность для этой операции, то какие проблемы?
G>Я не очень понимаю что значит "поддерживает" когда мы говорим об операциях вроде add-remove-copy. В зависимости от порядка выполнения набора add-remove-copy результат может быть разный.
Что мешает зафиксировать этот порядок или вообще убрать эти add-remove-copy?
> еЕли мы повторяем вызовы, то порядок выполнения не будет совпадать с изначальным порядком вызовов.
Как то странно выполнять приседания пачкой каждый раз. Если хочешь, что бы батч, а add-remove-copy, это фактически батч, был идемпотентным, то надо приложить чуть больше усилий, чем просто выполнять каждый раз и ждать того же результата.
Например, порядок должен быть зафиксирован, эта пачка операций идет внутри транзакции, и выполняется ровно один раз, не больше, и не меньше. Отсюда не ясно, как ты собиаешься получить "разный" результат.
P>>>>Всех участников
G>>>И как клиент может проконтролировать?
G>Какие обязанности у клиента?
Обычные — сделать запрос в соответствии с его семантикой. Если АПИ говорит о том, что операция идемпотентна, то на клиенской стороне надо сделать N соответствующих приседаний. Разумеется, это все делается самим клиентом по метаданным, а не вручную отсылая запрос POST.
P>>Из описания API. Обычно клиент генерируется, а не пишется руками.
G>В каком описании присутствует информация об идемпотентности тех или иных вызовов?
Я привел описание, вернись и посмотри. Выглядит так, будто ты накидываешь не читая.
P>>Что не так с этими операциями? Вот есть у тебя ключ x-y-z, метод POST и кучка add-remove-copy. Если сервер поддерживает идемпотентность для этой операции, то какие проблемы?
G>Я не очень понимаю что значит "поддерживает" когда мы говорим об операциях вроде add-remove-copy. В зависимости от порядка выполнения набора add-remove-copy результат может быть разный.
Что мешает зафиксировать этот порядок или вообще убрать эти add-remove-copy?
> еЕли мы повторяем вызовы, то порядок выполнения не будет совпадать с изначальным порядком вызовов.
Как то странно выполнять приседания пачкой каждый раз. Если хочешь, что бы батч, а add-remove-copy, это фактически батч, был идемпотентным, то надо приложить чуть больше усилий, чем просто выполнять каждый раз и ждать того же результата.
Например, порядок должен быть зафиксирован, эта пачка операций идет внутри транзакции, и выполняется ровно один раз, не больше, и не меньше. Отсюда не ясно, как ты собиаешься получить "разный" результат.