Как преобразовать HttpServletRequest в соответствующий объект HttpClient - PullRequest
0 голосов
/ 18 июня 2011

Я довольно новичок в REST и веб-приложениях в целом. Мне нужно реализовать вызов REST, который добавляет больше ресурсов в систему. Некоторые ресурсы могут быть созданы только с помощью XML-файла, такого как папка. Я предполагаю, что это будет запрос PUT и в теле поместить XML, который описывает ресурс, и на сервер, чтобы обработать запрос и создать папку. Некоторые ресурсы должны быть описаны (что это такое, кому они принадлежат .. и т. Д.), А также предоставить файл. например изображение.

У меня есть несколько вопросов: 1. Как лучше всего обрабатывать httpServletRequest? это кажется немного громоздким объектом, я читал о HttpClient, но я не уверен. 2. Это звучит как очень распространенная задача для каждого сервера RESTful. есть хороший учебник / руководство для него?

спасибо

1 Ответ

4 голосов
/ 18 июня 2011

У меня есть несколько вопросов: 1. Как лучше всего обрабатывать httpServletRequest?это кажется немного громоздким объектом, я читал о HttpClient, но я не уверен.

Предполагая, что вы используете Java, у вас есть несколько вариантов реализации клиентского отдыха.Вы можете использовать Apache HTTP Client , Spring RestTemplate , Jersey , чтобы назвать несколько.Далее вам необходимо выяснить тип носителя - это xml, json, обычный текст и т. Д. Таким образом вы передадите данные в теле запроса в службу остальных.Вам также необходимо выяснить, как сервис обрабатывает авторизацию.Используют ли они базовый HTTP, дайджест и т. Д. Если они используют XML, то вам необходимо ознакомиться с JAXB или аналогичным маршаллером / демаршаллером, чтобы облегчить вам жизнь.

2. Это звучит как очень распространенная задача, которую выполняет каждый сервер RESTful.есть хороший учебник / руководство для него?

Есть много учебников для него.Мне лично нравится использовать Spring Rest Template, однако вы можете использовать любой фреймворк, который вам нравится.Вот некоторые хорошие учебные ссылки: -

Spring Rest Template (за кулисами используется клиент Apache HTTP):

Джерси:

HTTP-клиент Apache:

...