-
Notifications
You must be signed in to change notification settings - Fork 7
[ru] Быстрый старт
Restler - это библиотека, позволяющая автоматически гененрировать прокси для доступа по HTTP к Spring бинам, проаннотированным аннотациями Spring MVC, такими как @Controller и @RestController. Использование Restler позволит вам не писать шаблонный код клиентов к своим REST-сервисам основанным на Spring MVC.
Для того чтобы подключить Restler к вашему проекту достаточно выполнить 3 шага:
- Убедиться, что у клиента есть доступ к классам или интерфейсам, которые проаннотированы аннотациями Spring MVC и к типам всех их аргументов, возвращяемых значенмй и исключений;
- Добавить Restler в зависимости;
- Создать экземпляр класса org.restler.Service.
Restler проектируется таким образом, чтобы быть максимально прозрачным и не предъявлять каких-то особенных требований к вашему коду. Однако одного требования избежать невозможно - в класспасе ваших клиентов должны быть доступны классы, к которым вы обращаетесь по HTTP. Это необходимо по 2 причинам:
- Нам необходим какой-то тип (класс или интерфейс), реализацию которого мы будем генерировать и экземпляры котрого мы будем выдавать вам для использования
- Нам необходимо каким-то образом получить информацию о маппинге ваших URL на ваши контроллеры. И наилучшим способом будет воспользоваться первоисточником который никода не врёт - аннотациями на ваших контроллерах.
Т.к. зависимость клиента от реализации сервера является прмером не лучшего дизайна, мы поддерживаем возможность инверсии этой зависимости. Подробнее эта тема расмотрена в TODO: отдельной статье.
Релизные версии Restler публикуются в Maven Central, поэтому для добавления его в зависимости вашего проекта достаточно со страницы деталей проекта на Maven Central скопировать строки соответствующие вашей билд системе
Для того чтобы создат экземпляр класса сервиса, необходимо воспользоваться классом Restler. В простейшем случае билдер достаточно сконфигурировать только URL-ом сервера и модулем поддержки Spring MVC:
Service service = new Restler("http://localhost:8080", new SpringMvcSupport()).build(); // создание сервиса
UserController userControllerProxy = service.produceClient(UserController.class); // Создание прокси удалённого REST-контроллера
userControllerProxy.login(login, pass); // Выполнение REST запроса