ResponseEntity
Обектът ResponseEntity е Spring wrapper на отговора на заявката. Съдържа целия HTTP отговор: код на състоянието, хедъри и тяло, в резултат на което можем да го използваме за пълно конфигуриране на HTTP отговора. ResponseEntity е генерик и всеки тип може да бъде използван в качеството на тяло на отговора.
@GetMapping("/hello")
ResponseEntity<String> hello() {
return new ResponseEntity<>("Hello World!", HttpStatus.OK);
}
Добавяне на HTTP хедъри:
@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
HttpHeaders headers = new HttpHeaders();
headers.add("Custom-Header", "foo");
return new ResponseEntity<>(
"Custom header set", headers, HttpStatus.OK);
}
Наред с това ResponseEntity предоставя два вложени интерфейса за изграждане: HeadersBuilder и неговия наследник BodyBuilder. Можем да получим достъп до техните възможности чрез статичните методи на ResponseEntity. За най-използваните HTTP статус кодове са предвидени следните статични методи:
BodyBuilder accepted();
BodyBuilder badRequest();
BodyBuilder created(java.net.URI location);
HeadersBuilder<?> noContent();
HeadersBuilder<?> notFound();
BodyBuilder ok();
Опростен пример за отговор с тяло и HTTP статус код 200:
@GetMapping("/hello")
ResponseEntity<String> hello() {
return ResponseEntity.ok("Hello World!");
}
Пример с добавяне на потребителски хедъри:
@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
return ResponseEntity.ok()
.header("Custom-Header", "foo")
.body("Custom header set");
}
Тъй като BodyBuilder.body() връща ResponseEntity вместо BodyBuilder, трябва да бъде извикан последен.