Не обязательно: одинаковый PUT к одному ресурсу по контракту идемпотентен, а POST обычно не имеет такой гарантии. Различие касается эффекта на состояние, а не идентичных ответов.
Если отправить 100 POST-запросов и 100 PUT-запросов, будет ли результат одинаковым?
Не обязательно: одинаковый PUT к одному ресурсу по контракту идемпотентен, а POST обычно не имеет такой гарантии. Различие касается эффекта на состояние, а не идентичных ответов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Не обязательно: одинаковый PUT к одному ресурсу по контракту идемпотентен, а POST обычно не имеет такой гарантии. Различие касается эффекта на состояние, а не идентичных ответов.
Сто одинаковых PUT, задающих одно представление по одному URI, должны иметь тот же предполагаемый эффект, что один. Статусы и логи при этом могут отличаться. Сто POST на создание способны создать сто сущностей, но API может специально обеспечивать идемпотентность ключом запроса. Если тела или URI различаются, сравнение уже другое. Реальная реализация может нарушать контракт, поэтому в тестах проверяют итоговое состояние и обработку повторов, а не только название метода.