Взаимодействие с Web-сервисом
Если необходимо найти что-нибудь, что известно социальнойсети о каком-нибудь пользователе, зная ID этого пользователя, можно выполнить запрос к API-интерфейсу социальной сети по URL.
Пример с Facebook:
http : // graph . facebook . com / pivotalsoftware
Если требуется запрос из браузера или curl, то получится JSON документ, который весьма не удобен. Более полезный способ взаимодействия с REST web-сервисом является программный. Для решения этой задачи, Spring предоставляет удобный шаблонный класс RestTemplate. RestTemplate осуществляет взаимодействие с большинством RESTful сервисами однострочным заклинанием. И он может даже привести данные к пользовательским типам.
Для начала, вы создаете класс, который содержит необходимую информацию. Если необходимо знать имя, номер телефона, URL-адрес и другую информацию, то необходимо использовать представленный класс:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Page { private String name;
private String about;
private String phone;
private String website;
public String getName() {
return name;
}
public String getAbout() {
return about;
}
public String getPhone() {
return phone;
}
public String getWebsite() {
return website;
}
}
Это Java класс с полями и распространяет их получения. Он содержит аннотацию @JsonIgnoreProperties библиотеки обработки JSON Jackson, которая показывает, что любые поля, не связанные с полями класса, должны быть проигнорированы.
Безопасность Web -приложения
Приложение включает два простых представления: домашнюю страницу и "Hello World" страницу. Домашняя страница предствлена как Thymeleaf шаблон:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title>Spring Security Example</title>
</head>
<body>
<h1>Welcome!</h1>
<p>Click <a th:href="@{/hello}">here</a> to see a greeting.</p>
</body>
</html>
Как можно увидеть, это приложение включает ссылку на страницу "/hello", которая представлена как шаблон.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello world!</h1>
</body>
</html>
Приложение основано на Spring MVC. То есть необходимо настроить Spring MVC и контроллеры представлений для отображения этих шаблонов. Конфигурационный класс для настройки Spring MVC в приложении:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home");
registry.addViewController("/").setViewName("home");
registry.addViewController("/hello").setViewName("hello");
registry.addViewController("/login").setViewName("login");
}
}
Метод addViewControllers(), добавляет четыре контроллера. Двое из них настроены на представление с именем "home"(home.html), другой настроен на "hello". Четвертый контроллер настроен на представление с названием "login".
Всё это позволит создать приложения исполняемым и запустить их без входа в систему.
Java Spring Social
Проект Java Spring-Social призван упростить создание приложений интегрированных с различными социальными сетями.
Функции Spring-Social:
· Набор template-ов для работы с различными «социальными» сервисами;
· Request Factory подписывающая запросы к сервисам (специальным для OAuth способом);
· Автоматическое «доставание» параметра «Facebook Id» для его последующей передачи в SpringMVC контроллер.