Как должен обрабатываться «отсутствующий» заголовок запроса Spring Boot Controller? - PullRequest
0 голосов
/ 13 марта 2019

Я пишу приложение Spring Boot. Мой контроллер имеет 2 пользовательских заголовка запроса. Я выполнял пару тестов только для того, чтобы выяснить, что мое приложение возвращает «404», когда заголовки отсутствуют.

Однако я ожидал, что это приведет к ошибке «400»?

Кто-нибудь может уточнить, почему это происходит? И как мне правильно с этим справиться? Как сказать потребителю услуги, что заголовки отсутствуют?

@RestController("fundsConfirmationController")
@RequestMapping(
    value="/accounts/{accountId}/funds-confirmations",
    headers = {"X-CAF-MSGID", "X-AccessToken"}
) 
public class FundsConfirmationController implements FundsConfirmationControllerI{

private FundsConfirmationServiceI fundsConfirmationService;

@Autowired
public FundsConfirmationController(FundsConfirmationServiceI fundsConfirmationService){
    this.fundsConfirmationService = fundsConfirmationService;
}

@GetMapping(
        consumes = MediaType.APPLICATION_JSON_VALUE,
        produces = MediaType.APPLICATION_JSON_VALUE
)
public ResponseEntity<?> fundsConfirmation(@RequestHeader(value="X-CAF-MSGID") String messageId,
                                           @RequestHeader(value="X-AccessToken") String accessToken,
                                           FundsConfirmationRequest requestParams) { ... }

1 Ответ

1 голос
/ 13 марта 2019

2 решения сделать то же самое.

Первое использование @RequestHeader с required false

@RequestMapping(value = "/{blabla}", method = RequestMethod.POST)
public void post(@RequestHeader(value="X-CAF-MSGID", required=false) String X-CAF-MSGID) {
    if(X-CAF-MSGID == null) {
        // Your JSON Error Handling
    } else {
        // Your Processing
    }
}

Второе использование HttpServletRequest вместо @RequestHeader

@RequestMapping(value = "/{blabla}", method = RequestMethod.POST)
public void post(HttpServletRequest request) {
    String X-CAF-MSGID = request.getHeader("X-CAF-MSGID");
    if(X-CAF-MSGID == null) {
        // Your JSON Error Handling
    } else {
        // Your Processing
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...