Файл: Spring boot, spring security и rest spring security.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 212
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
| @PostMapping("/request")public ResponseEntity postController( @RequestBody LoginForm loginForm) { exampleService.fakeAuthenticate(loginForm); return ResponseEntity.ok(HttpStatus.OK); } |
| @Controller@RequestMapping("/post")public class ExamplePostController {@Autowired ExampleService exampleService; @PostMapping("/response")@ResponseBodypublic ResponseTransfer postResponseController( @RequestBody LoginForm loginForm) { return new ResponseTransfer("Thanks For Posting!!!"); } } |
-
Что такое AJAX/fetch?
| let promise = fetch(url, [options]) /*url - URL для отправки запроса. options - дополнительные параметры: метод, заголовки и так далее*/ |
-
Чем аннотация RestController отличается от Controller
-
RestTemplate и его методы
| RestTemplate restTemplate = new RestTemplate(); String fooResourceUrl = "http://localhost:8080/spring-rest/foos"; ResponseEntity response = restTemplate.getForEntity(fooResourceUrl + "/1", String.class); |
Основные методы:getForEntity - выполняет запрос GET и возвращает объект ResponseEntity;getForObject - аналогично getForEntity, но возвращает ресурс напрямую;exchange - выполняет указанный метод HTTP, такой как GET, POST, PUT и т. д., и возвращает объект ResponseEntity;execute - аналогичен exchange методу, но требует дополнительных параметров: RequestCallback и ResultSetExtractor;headForHeaders - выполняет запрос HEAD и возвращает все заголовки;optionsForAllow - выполняет запрос OPTIONS и использует заголовок Allow;delete - удаляет ресурсы по указанному URL-адресу с помощью метода HTTP DELETE;put - обновляет ресурс для заданного URL-адреса с помощью метода HTTP PUT;postForObject - создает новый запрос с использованием метода HTTP POST и возвращает сущность;postForLocation - создает новый запрос с использованием метода HTTP POST и возвращает его расположение;HTTP
-
Что такое HTTP, основные его методы?
-
Идемпотентность HTTP-методов
эффект на сервер от одного запроса такой же как от нескольких идентичных запросов такого типа. PUT, DELETE и безопасные методы (только на чтение — не изменяют состояние сервера) запросы являются идемпотентными.Другими словами если многократное повторение одних и тех же запросов возвращает одинаковые результаты, то метод считается идемпотентным.Идемпотентный и небезопасный — значит, что, сколько бы ни повторялся запрос, только первый изменит состояние системы, а остальные состояние системы не меняют.Идемпотентный и безопасный — многократное повторение запроса вернет одно и то же состояние системы (если ресурс не изменился между ними по иным причинам).Из спецификации HTTP:
| Метод | Безопасный | Идемпотентный | Ссылка |
| CONNECT | нет | нет | Section 4.3.6 |
| DELETE | нет | да | Section 4.3.5 |
| GET | да | да | Section 4.3.1 |
| HEAD | да | да | Section 4.3.2 |
| OPTIONS | да | да | Section 4.3.7 |
| POST | нет | нет | Section 4.3.3 |
| PUT | нет | да | Section 4.3.4 |
| TRACE | да | да | Section 4.3.8 |
-
Что такое http-заголовок? Что такое http-сессия?
Клиент отправляет запрос и ждёт ответа.Сервер обрабатывает запрос и посылает ответ, в котором содержится код статуса и соответствующие данные.Начиная с версии HTTP/1.1, после третьей фазы соединение не закрывается, так как клиенту позволяется инициировать другой запрос. То есть, вторая и третья фазы могут повторяться.
-
Коды состояний HTTP
-
Разница между SpringBoot и SpringMVC
-
Разница между @PathVariable и @RequestParam
| /*http://localhost:8080/springmvc/hello/101?param1=10¶m2=20 */public String getDetails(@RequestParam(value="param1",required=true) String param1, @RequestParam(value="param2", required=false) String param2){ ... } |
| /*http://localhost:8080/springmvc/hello/101?param1=10¶m2=20*/@RequestMapping("/hello/{id}") public String getDetails(@PathVariable(value="id")String id, @RequestParam(value="param1", required=true)String param1, @RequestParam(value="param2", required=false)String param2){ ....... } |
-
Определение реактивных потоков данных
Reactive Streams – это инициатива, запущенная в конце 2013 года инженерами из Netflix, Lightbend и Pivotal (последняя компания в этом списке как раз и занимается разработкой Spring). Цель Reactive Streams – поддержка стандарта асинхронной обработки потоков с неблокирующим обратным давлением (backpressure).Это позволяет выполнять задачи параллельно и достигать большей масштабируемости. Обратное давление – это средство, помогающее получателям данных избежать перегрузки при работе со слишком быстрым источником данных; с его помощью получатели могут установить ограничение на объем, который они готовы обработать в единицу времени.Спецификацию Reactive Streams можно свести к четырем определениям интерфейсов: Publisher, Subscriber, Subscription и Processor.Издатель Publisher создает данные и отправляет их подписчику Subscriber. Интерфейс издателя Publisher объявляет единственный метод subscribe(), с помощью которого подписчик Subscriber может подписаться на события издателя. После оформления подписки подписчик Subscriber может получать события от издателя. Эти события отправляются через методы в интерфейсе подписчика Subscriber.Первое событие, которое получит подписчик, – это вызов onSubscribe(). Когда издатель вызывает onSubscribe(), он передает объект Subscription подписчику. Именно через Subscription подписчик Subscribe может управлять своей подпиской. После запроса данных подписчиком Subscriber они начинают передаваться через поток.Так же как подписчик Subscriber, процессор Processor будет получать и каким-то образом обрабатывать данные. Затем он сменит ориентацию и будет действовать как издатель Publisher, чтобы опубликовать новые данные для своих подписчиков.Следует упомянуть также об основных типах, реализующих интерфейс Publisher: Mono и Flux. Тип Flux представляет конвейер из произвольного количества (от нуля до бесконечности) элементов данных. Mono – это специализированный реактивный тип, оптимизированный для случаев, когда известно, что набор данных содержит не более одного элемента данных.
-
RestTemplate vs WebClient