RestController Установка заголовка по умолчанию для GetMapping - PullRequest
0 голосов
/ 11 февраля 2020

Доброе утро,

У меня есть контроллер RestController, где у меня есть GetMapping с использованием заголовка. Если этот заголовок не имеет какого-либо значения, я хочу направить метод по умолчанию, ¿есть ли способ? ¿Есть ли способ установить значение заголовка по умолчанию, когда остальной клиент не отправляет его?

@RestController
@RequestMapping("/api/demo")

@Log4j2
public class RestDemoController{

@GetMapping( value = "/version", headers = "x-api-version=v.1.0")
public String getHeaderValue(@RequestHeader(value=ApiVersionConstans.API_VERSION_HEADER_CODE) String version) {
    log.debug("Returning version header");
    return ApiVersionConstans.API_VERSION_HEADER_CODE;
}

@GetMapping(value = "/version", headers = "x-api-version=v.1.0_default")

public String getAnoherHeader(@RequestHeader(value=ApiVersionConstans.API_VERSION_HEADER_CODE) String version) {
    log.debug("Looking for exisiting tokens");
    return "This is another header";
}

}

С уважением

1 Ответ

1 голос
/ 11 февраля 2020

Пожалуйста, попробуйте это:

@GetMapping("/version")
public String getDefaultHeader(@RequestHeader(value=ApiVersionConstans.API_VERSION_HEADER_CODE, defaultValue="your default value") String version) {
    // ...
    return "This is default header";
}

Когда вы устанавливаете @RequestHeader#defaultValue, заголовок не требуется, и его значение устанавливается на version, если заголовок отсутствует.
Я думаю, что javado c из @RequestHeader полезен для вас: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestHeader.html#required -

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...