Spring Boot: Spring HATEOAS, поддержка CORS

Spring HATEOAS

Если вы разрабатываете RESTful API, который использует hypermedia, Spring Boot предоставляет автоконфигурацию для Spring HATEOAS, которая хорошо работает с большинством приложений. Автоконфигурация заменяет необходимость использования @EnableHypermediaSupport и регистрирует ряд bean-компонентов для упрощения создания приложений на основе hypermedia, включая LinkDiscoverers (для поддержки на стороне клиента) и ObjectMapper, настроенный для правильного маршалинга ответов в желаемое представление. ObjectMapper настраивается путем установки различных свойств spring.jackson.* или, если таковые существуют, bean Jackson2ObjectMapperBuilder.

Вы можете контролировать конфигурацию Spring HATEOAS с помощью @EnableHypermediaSupport. Обратите внимание, что это отключает настройку ObjectMapper, выполняемую автоматически.

Поддержка CORS

Совместное использование ресурсов между источниками (CORS, Cross-origin resource sharing) - это спецификация W3C, реализованная большинством браузеров, которая позволяет гибко указывать, какие типы междоменных запросов разрешаются. Вместо использования менее безопасных и менее мощных подходов, таких как IFRAME или JSONP.

Начиная с версии 4.2, Spring MVC поддерживает CORS. Использование метода контроллера CORS с аннотациями @CrossOrigin в приложении Spring Boot не требует какой-либо конкретной настройки. Глобальная конфигурация CORS может быть определена путем регистрации bean-компонента WebMvcConfigurer с помощью настроенного метода addCorsMappings(CorsRegistry), как показано в следующем примере:

@Configuration(proxyBeanMethods = false)
public class MyConfiguration {

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/api/**");
            }
        };
    }
}


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки