Это скорее вопрос концептуальной целостности для чего-то, что меня беспокоит.
Предполагается, что метод DELETE HTTP является идемпотентным, а URI REST должны фактически представлять вещи.Но, похоже, он определен только в направлении reverse : каждый ресурс должен иметь один URI, но данный URI, по-видимому, не нуждается в ресурсе.Более мягко говоря, я предполагаю, что URI можно определить так, чтобы они указывали на пустые / нулевые ресурсы.
Единственный момент, когда это кажется действительно актуальным, - это запрос DELETE.Где это лучшее место?example.com/users/
с содержимым, идентифицирующим ресурс, который нужно удалить, или example.com/users/USERNAME
лучше?
Содержимое в DELETE выглядит нормально в HTTP и REST.(Концептуально: в соответствии с другими вопросами SO различные платформы будут молча отбрасывать содержимое из запросов DELETE, прежде чем вы сможете его обработать.)
Итак, вот мое мнение: каждый пример использует последнюю схему - где вы удаляетересурс на его URI, не удаляя ресурс из его родительской коллекции URI - но ресурс должен прекратить существовать после успешного УДАЛЕНИЯ.В этом случае URI должен выйти из строя громко, imho.Но это сведет на нет идемпотентность DELETE, и это заставит меня думать, что DELETE должен работать с коллекциями, а контент определяет фактический ресурс, который нужно удалить.Я, вероятно, должен согласиться с этим для здравомыслия моих пользователей, но есть ли где-нибудь, где это четко прописано, или очевидные вещи, которые я пропускаю, которые делают меня неправильным?