Как я могу получить доступ к значениям заголовка доступа сообщения REST GET с помощью Spring / Kotlin - PullRequest
0 голосов
/ 22 апреля 2020

Для спокойного общения я создаю Server-Backend с Kotlin, используя Spring.

У меня есть следующий код для запроса GET. Пока я довольно новичок в Kotlin, а также в библиотеке Spring. Может кто-нибудь объяснить мне, как я могу получить доступ к значениям в заголовке сообщения GET?

Я думаю, @RequestHeader каким-то образом используется для этого? Будет ли оно таким же для других типов сообщений, как POST, UPDATE и т. Д. c?

@CrossOrigin
@RestController
class UserRestController(val userManager: UserManager) {

    @GetMapping("specific_user_lean")
    fun getSpecificUserLean(@RequestParam(value ="id") id: String) = run {
        userManager.loadUserByID(id) // returns null or a User object
    }
}

1 Ответ

1 голос
/ 22 апреля 2020

Вы можете использовать для него @RequestHeader, как указано в весенней документации: https://docs.spring.io/spring/docs/5.2.x/spring-framework-reference/web.html#mvc -ann-requestheader

Также есть пример для Kotlin:

@GetMapping("/demo")
fun handle(
    @RequestHeader("Accept-Encoding") encoding: String, 
    @RequestHeader("Keep-Alive") keepAlive: Long) { 
    //...
}

В этом примере принимаются заголовки «Accept-Encoding» и «Keep-Alive».

Если вы хотите принять все заголовки, то вам следует собрать их в Map.

@GetMapping("/demo")
fun handle(
    @RequestHeader allHeaders: Map<String, String>) { 
    //...
}

Да, аннотация @RequestHeader работает для POST, PUT и других методов.

...