Как мне разработать оставшийся API, если мне нужно создавать, а также изменять записи в той же таблице БД при отправке формы? - PullRequest
0 голосов
/ 31 марта 2019

У меня есть приложение реагирования, в котором я могу изменить уже добавленные элементы, а также добавить новый.Затем, после отправки формы, я хочу изменить существующую и создать новые записи в базе данных.Должен ли я сделать PUT-вызов для существующего и POST-вызов для новых при отправке формы?

В настоящее время я делаю POST-вызов на сервер и проверяю, есть ли у полученного объекта первичный ключ, затем обновляет его в базе данных, в противном случае создает новыйrecord.

Но я думаю, что я не следую остальным принципам, потому что я обновляю и создаю записи в одном и том же вызове отдыха.

@Post
createOrModifyObject(List<Object> obj) {
if(obj.getId() != null) {
    database.update();
}else{
    database.create()
}
}

Мне нужно создавать и обновлять записи в одном вызове.Как я должен справиться с этим?я должен сделать отдельный звонок для создания и обновления записей?

Ответы [ 3 ]

0 голосов
/ 31 марта 2019

Вы можете создать POST-запрос:

что-то: здесь / идет / пользователь -> Этот создаст нового пользователя.

И запрос PUT:

что-то: здесь / идет / пользователь / инфо-о-пользователь -> Этот обновит пользователя.

Я бы обработал другой запрос. Это сделает ваш код более простым и позволит избежать вложений if-else-then в одном запросе.

0 голосов
/ 31 марта 2019

Лучшее решение для вас - создать другой метод обновления ресурсов. Зачем? Потому что:

  1. Лучшая практика в дизайне REST - сопоставить создание ресурса с методом POST и обновление существующего ресурса с методом PUT.
  2. Принцип единой ответственности применим и к методам, поэтому у вас не должно быть единого метода с обязанностями по созданию и обновлению ресурсов. Вы должны разделить эти обязанности на два метода.
  3. Разбивая ответственность на несколько методов, вы разделяете код. Поэтому, если вы допустите ошибку в текущем методе, вы будете влиять на создание и обновление сущности одновременно.
0 голосов
/ 31 марта 2019

С https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PUT:

Метод запроса HTTP PUT создает новый ресурс или заменяет представление целевого ресурса на полезную нагрузку запроса.

Из RESTс этой точки зрения, в этом случае хорошо использовать только 1 HTTP-метод, при условии, что это PUT

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