2012-06-07 3 views
1

У меня есть требование написать java API для одного из моих веб-приложений весной 3. Я также должен выполнять все действия, которые я выполняю, используя свой веб-интерфейс, через эти API. имеют методы контроллера, украшенные @RequestMapping. Недавно я слышал, что эти методы могут быть представлены как Restful service, к которым можно получить доступ через клиента отдыха с минимальной модификацией. Я просто задавался вопросом о рекомендуемых способах создания клиента Rest для служб spring3. Я не хочу использовать какие-либо пружинные зависимости в этих java-API. Я должен иметь возможность загружать файлы с использованием этих API, поскольку у меня есть multipart/form-data, реализованные в моем весеннем приложении. Может ли кто-нибудь помочь мне выбрать лучший способ разработки RestClients в java для весенних приложений?Реализация клиента клиента для приложения весной 3

У меня есть ниже реализаций HTTP:

Java - использует реализацию HTTP, предоставленную JVM. Это имеет некоторые ограничения по сравнению с реализациями HttpClient.

HTTPClient3.1 - использует Apache Commons HttpClient 3.1.

HTTPClient4 - использует Apache HttpComponents HttpClient 4.x.

Pls сообщит мне ваше предложение.

ответ

1

Лично я использую org.springframework.web.client.RestClient, так как вы уже используете Spring. Они выполняют достойную работу по управлению тем, что вам нужно, просто имейте в виду их исключение и отсутствие обработки содержимого отстой. Единственное изменение, которое я должен был сделать было переопределить их doExecute(URI, HttpMethod, RequestCallback, ResponseExtractor<T>) и добавить:

if (response.getStatusCode().equals(HttpStatus.NO_CONTENT)) { 
    return null; 
} 

перед тем

if (!getErrorHandler().hasError(response)) { ... 

Кроме этого мало причуда (и некоторые обработки пользовательских исключений), это был отличный инструмент.

+0

Благодарим вас за подробности. Мне было интересно, поддерживает ли RestTemplate многостраничную загрузку файлов. Мне нужно отправить файлы вместе с HTTPRequest – ASChakkalakal

+0

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/client/RestTemplate.html https: //jira.springsource. org/browse/SPR-5904 yup – MaddHacker

+0

Вы также можете посмотреть здесь: http://stackoverflow.com/questions/4118670/sending-multipart-file-as-post-parameters-with-resttemplate-requests – MaddHacker