У меня есть следующая конечная точка REST:
@POST
@Path("/id/{id}/doSomething")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public Response doSomething(@PathParam("id") final String id, MyObject foo) {
// does some stuff; checks for a null foo and handles it
}
Класс MyObject имеет одно поле String с именем justification
.
Я хотел бы иметь возможность подключиться к этой конечной точке вообще без содержимого или с помощью JSON, который соответствует классу MyObject
. Я бы хотел работать любым способом. Другими словами, foo
может быть создан, или foo
может иметь значение null; У меня есть код для обработки обоих случаев.
Проблема в том, что содержимое JSON кажется обязательным для этой конечной точки, а не необязательным. Поэтому во время тестирования я должен отправить JSON на конечную точку, иначе я получаю ошибку 500. Даже если этот JSON всего лишь {}
(я также могу отправить { justification: "blah blah" }
, и это тоже работает). Но отправка вообще без содержания приводит к неудачному вызову; никогда даже не попадает в конечную точку.
Итак, у меня вопрос: как я могу настроить эту конечную точку, чтобы я мог отправлять на нее POST без какого-либо содержимого или с JSON в теле, которое сопоставляется с foo
, и работать в любом случае?
В конечном итоге мне просто нужен способ, чтобы пользователь мог отправить обоснование на эту конечную точку, но не обязан. И поскольку обоснования могут быть длинными, я не могу использовать его как параметр запроса или параметр пути.
Спасибо!