2016-08-23 3 views
0

У меня есть служба REST, которая создает некоторые элементы в моей базе данных. Эти элементы создаются «статически» в методе сервера и не выдаются клиентом, но затем будут возвращены клиенту после завершения операции.Служба REST без отправки объекта, GET, POST или PUT?

Если я объявляю службу как PUT/POST (потому что я хочу, чтобы создать новые вещи) клиент должен послать объект, который должен быть пустым, так как клиент не имеет объекта, чтобы отправить (все это делается на сервере).

Если я объявляю его как GET мне не нужно, чтобы отправить нуль-объект, но мой GET-метод будет создавать вещи, которые я не ожидать от GET-метода

So , какой будет наилучший подход в этом случае: PUT, POST или GET?

+0

вы просто хотите, чтобы вызвать эти создания элементов только на вызов клиента? Как насчет создания элементов изначально до того, как какой-либо запрос будет сделан вам и выведет метод GET клиенту, с помощью которого вы сможете их вернуть? – Naveen

+0

Что произойдет, если вы повторно используете ресурс несколько раз? Должны ли объекты создаваться при каждом вызове (побочный эффект) или должны ли объекты создаваться только один раз? В случае с праймером вы не можете использовать 'PUT' или' GET' из-за своей идемпотентной семантики. В последнем случае я предпочел бы @NaveenAechan предложение –

+0

@NaveenAechan ваш подход мог бы работать в моем случае, и он мог избежать некоторых проблем, таких как множественное создание, как отметил Роман Воттнер. Я попробую. В любом случае, я хотел бы знать, следует ли использовать GET, POST или PUT для подхода, который я объяснил в вопросе – iberbeu

ответ

1

Вот как я ожидал, что это будет сделано.

  1. Использование ServletContextListener и при инициализации контекста вы вызываете свою логику. Refer this link
  2. И для пользователя выведите URL-адрес http://yoururl/get/created/stuff и верните элементы, которые вы создали ранее. Может быть тянуть из БД и конвертировать в формат JSON/XML/обычный текст и т.д.

Некоторые более references

1

POST without payload Возможно, возможно ответ на ваш подход.

+0

Хотя POST без полезной нагрузки возможен в соответствии со спецификацией (точно так же, как GET с полезной нагрузкой), многие прокси и веб-серверы имеют проблемы с этим. Если вы нацелены на совместимость, рекомендуется, по крайней мере, разрешить некоторый контент, который будет проигнорирован. – Tomas

Смежные вопросы