Разработка RESTful - Как поделиться с клиентами?

Я использую Jersey/Tomcat6 для разработки некоторых веб-сервисов. По сравнению с тем, что я сделал для служб SOAP, я не понимаю, чем я должен поделиться со своими клиентами после разработки служб... только URL-адрес веб-службы ?? Для SOAP файла WSDL было достаточно, так как клиенты сами генерировали заглушки.

Моя служба возвращает список объектов User (с двумя строками) в формате JSON. Как бы мои клиенты десериализовали JSON, если бы я делился с ними только URL-адресом службы? Нужно ли мне совместно использовать объектный компонент (класс User и класс списка) на стороне моего сервера?

Я читал о некоторых файлах WADL для REST... они здесь полезны?

Спасибо за любую помощь!


person zombie    schedule 07.07.2011    source источник


Ответы (1)


Похоже, вы, вероятно, хотите собрать пример клиента, чтобы дать своим, э-э, клиентам, чтобы показать им, как использовать службу REST. В идеале, конечно, ваша служба REST должна полностью поддерживать HATEOAS (Hypermedia As The Engine Of Application State), и поэтому средства обхода ресурсов для получения желаемых результатов будут доступны для обнаружения; Однако я обнаружил, что настоящая реализация HATEOAS встречается редко. Для RESTful-сервиса (который не полностью поддерживает HATEOAS) полезны примеры клиентов. Обычно вы можете реализовать свой пример клиента в HTML с помощью некоторого Javascript; это делает все очень доступным для большинства пользователей клиентов REST.

person Paul Sonier    schedule 07.07.2011
comment
Я могу снова создать некоторых клиентов, использующих Джерси... но им тоже нужны файлы классов после десериализации JSON, который я отправляю по сети. Итак, мой вопрос в том, нужно ли мне передавать эти файлы clas всем моим клиентам? (Потому что мне как клиенту действительно нужны эти классы или структура объектов). - person zombie; 07.07.2011
comment
Вот вопрос: зачем именно вашим клиентам нужны занятия? - person Paul Sonier; 07.07.2011
comment
Наверное, я где-то ужасно ошибаюсь. Сделанный мной трикотажный клиент получает строку JSON от веб-службы, которую ему необходимо десериализовать в объект. Для этой десериализации требуется существующее определение класса (такое же, как на стороне сервера). Где я ошибаюсь? Может ли мой клиент десериализовать всю строку JSON, даже не зная файла класса?? - person zombie; 07.07.2011
comment
Им вообще не нужны ваши классы, чтобы использовать JSON-представление вашего класса. Если создаваемый JSON тесно связан с какой-либо реализацией класса Java, так что он не имеет смысла без этой конкретной реализации, то его, вероятно, следует изменить. Можете ли вы опубликовать образец JSON? - person stinkymatt; 08.07.2011
comment
@zombie Ваше предположение о том, что ему необходимо десериализовать в объект, ограничивает разработчика клиента определенной методологией реализации. Вам все равно, как разработчик клиента решит десериализовать ваш медиа-тип. Вы можете показать примеры того, как они могут это сделать. Однако постарайтесь не ограничивать их. - person Darrel Miller; 09.07.2011