2015-10-01 8 views
0

У меня вопрос дизайна на REST. Мне нужно выставить метод проверки в качестве ресурса отдыха. Скажем, это выглядитКакое действие REST следует использовать для проверки?

public ValidatedResult validate(ObjectToBeValidated object) 

ObjectToBeValidated это класс, который содержит фактические Object а также некоторые параметры, касающиеся проверки.

Когда я создаю это как ресурс Restful, какое действие я использую? По моему мнению, GET - это действие, которое лучше всего подходит для этого случая. Если это так, как я могу передать мой ObjectTobeValidated в качестве объекта, но не как параметры URL? Я уклоняюсь от параметров URL, потому что ObjectToBeValidated может содержать много свойств, в конечном итоге с URL, как показано ниже, который чувствует себя слишком долго

http://localhost/rest/validate?prop1=somevalu&prop2=somevalue&prop3=something&prop11=somevalu&prop22=somevalue&prop33=something 

Любой помощь будет оценен

Thanks Kay

+1

Зачем нужно проверять объекты? Что клиенты должны делать с проверенным объектом? Поскольку, если следующим шагом является сохранение объекта, например, вы можете проверить объект непосредственно в методе, который обрабатывает постоянство, и вернуть ошибку 4xx, если объект недействителен. – sp00m

+0

Вы можете использовать POST. – inf3rno

+0

Возможно, слово validate не правильно описывает мое намерение здесь. Например, клиент отправит запрос с именем игрока и видом спорта. Ресурс вернет гораздо более подробный игровой объект (спорт, команда, карьера и т. Д.). В случаях, когда ресурс может ничего не возвращать. –

ответ

1

Стандарт HTTP позволяет использовать метод POST. Не обязательно иметь побочный эффект.

Действие, выполняемое методом POST, может не привести к ресурсу , который может быть идентифицирован с помощью URI. В этом случае либо 200 (OK), либо 204 (без содержимого) - это соответствующий статус ответа, в зависимости от того, или нет, ответ включает в себя объект, который описывает результат.

В вашем случае вы можете сделать что-то вроде этого, если вы хотите следовать существительное-глагол подход Тим предложил:

POST /api/my/object/validator 

Имейте в виду, что покоятся сообщения должны быть самоописательными, так что вам нужен тип MIME поставщика или вам нужно добавить метаданные, например RDF, чтобы описать, что делает эта ссылка и какие параметры разрешены. В противном случае мы не говорим о REST, просто регулярном webapp.

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