Java: запрос PUT без идентификатора отправляется как POST

1

Я создаю и обновляю вызовы api для тех же объектов. Если пользователь отправляет запрос PUT без идентификатора объекта, контроллер принимает его как запрос POST и создает новый объект.
Как я могу это предотвратить?

@POST
@Consumes({MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_XML})
public Response create(Entity entity){}


@PUT
@Path("/{id}")
@Consumes({ MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_XML })
public Response update(@PathParam("id") int id,Entity entity){}

Есть ли способ сделать параметр запроса необходимым для обновления? Это также может решить проблему.

  • 0
    Выстрел в темноте, попробуйте добавить @Path("/") к методу POST. Теоретически, это заставит метод POST работать, только если к пути ничего не добавлено.
Теги:
jersey
java-ws

1 ответ

1
Лучший ответ

Добавьте шаблон @Path из вашего @Path.

Синтаксис:

    @Path("/{" variable-name [ ":" regular-expression ] "}")

Пример:

    @Path("/{id: <replace_with_reg_exp>}")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню