Каков истинный метод отдыха, чтобы удалить ресурс из поиска и листинга? - PullRequest
1 голос
/ 23 октября 2019

В нашем terms of service мы сказали, что контент, которым делятся пользователи, никогда не удалится на самом деле. Мы просто хотим удалить из поиска, поиска и листинга. Но ресурс должен оставаться в нашей базе данных (точно так же, как это делает StatckOverflow) для удаления вопросов (он может удалить любой из них).

Какой сценарий больше RESTful, чтобы сделать это:

  • Сценарий 1 :

    • Добавление is_delete с False по умолчанию к модели базы данных.
    • Отправка DELETE запроса и изменение моделиis_deleted поле вместо реального удаления. (200 или 204 код состояния)
  • Сценарий 2 :

    • Добавление is_delete с помощью False по умолчанию для модели базы данных.
    • Отправка PATCH запроса и изменение поля модели is_deleted. (200 или 204 снова)

1 Ответ

2 голосов
/ 23 октября 2019

Если вы разрешаете пользователям удалять свой контент, но не позволяете им восстановить его, тогда, насколько они заинтересованы, контент удаляется. Хранение его с атрибутом «удалено» - это то, как вы реализуете это удаление, и не имеет значения для пользователей API.

Это говорит о том, что подходит первый вариант. Используйте DELETE и измените поле is_delete на true и измените поиск SQL, чтобы игнорировать все, что было «удалено».

Если пользователи могут восстановить, то они на самом деле не удаляются. во-первых, и PATCH может быть более подходящим, чтобы изменить is_delete с false на true и наоборот. Они будут PATCH переводить ресурс в другое состояние, которое по сути будет «невидимым» состоянием, а не удалять его. Это позволило бы вам осуществить реальное «удаление» с помощью DELETE запроса, как указано выше, если вы захотите реализовать «окончательное удаление».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...