Весенняя загрузка удалить массив сопоставления в качестве параметра - PullRequest
0 голосов
/ 04 июля 2019

У меня есть следующий метод контроллера, чтобы получить массив идентификаторов, а затем удалить, но то, что я посылаю из реакции, не улавливается здесь.

@DeleteMapping({"delete-user"})
public GenericResponse deleteUser(@RequestBody String[] ids, Errors errors) {
    if (errors.hasErrors())
        throw new ParseException();
    return userService.delete(Arrays.asList(ids));
}

Фрагмент запроса реагирования

yield call(userDeleteService, payload.ids)

Чтополезная нагрузка:

callback: undefined
ids: Array(1)
    0: "08ddc3f3-9df3-463f-8d95-25a4633f24b7"
length: 1

Это запрос, отправленный со стороны реакции.

http://localhost:8080/user/delete-user?0=08ddc3f3-9df3-463f-8d95-25a4633f24b7&1=11036b08-8daa-44ef-a557-9723f20b8911&

1 Ответ

1 голос
/ 04 июля 2019

Давайте немного пересмотрим вашу конечную точку.

Вы хотите удалить пользователя на основе списка идентификаторов:

  1. Вы выставляете конечную точку, используя глагол DELETE, который идеально подходит!
  2. Как частьхорошие REST практики , вы должны использовать существительные вместо глаголов в вашем определении конечной точки.Таким образом, предоставление конечной точки DELETE в /users лучше, чем предоставление конечной точки DELETE /users/delete-user.
  3. Убедитесь, что из front'end вы действительно используете глагол DELETE, а не GET, POST или что-либо ещеelse.
  4. Похоже, что вы отправляете идентификаторы двумя разными способами: body и параметр запроса, выберите один!Я бы выбрал тело, так как желаемый результат - отправка нескольких объектов одновременно.

Чтобы получить список идентификаторов, вы должны заключить свой массив в класс:

public class DeleteUserDTO {
  private List<String> ids;

  // getter  + setter
}

А затем используйте этот объект в качестве тела запроса:

@DeleteMapping
public GenericResponse deleteUser(@RequestBody DeleteUserDTO dto, Errors errors) {
    if (errors.hasErrors())
        throw new ParseException();
    return userService.delete(dto.getIds());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...