0.97M
Category: internetinternet

Принципы REST

1.

Принципы REST
Сорокин Владислав, Java Trainee Aston

2.

Что такое REST?
REST (REpresentational State Transfer) - архитектурный стиль для
распределенных систем, таких как веб-сервисы.
• Основан на HTTP и использует стандартные методы HTTP (GET,
POST, PUT, DELETE и т.д.).

3.

Основные принципы REST
• Клиент-серверная модель (Client-Server)
• Отсутствие состояния (Stateless)
• Кеширование (Cacheable)
• Единообразие интерфейса (Uniform Interface)
• Многоуровневая система (Layered System)
• Код по требованию (Code on Demand) (опционально)

4.

Клиент-серверная модель (Client-Server)
Разделение системы на две основные части: клиент и сервер.
Клиент отвечает за интерфейс пользователя и логику
представления.
Сервер управляет бизнес-логикой, хранением данных и
обработкой запросов.
• Разделение обязанностей
• Интерфейсы

5.

Отсутствие состояния (Stateless)
Каждое сообщение содержит всю необходимую
информацию для выполнения операции.
Сервер не хранит сессию между запросами.
Преимущества:
• Независимость запросов
• Упрощенное масштабирование
• Повышенная надежность
• Упрощенная поддержка и обслуживание

6.

Кеширование (Cacheable)
Ответы сервера должны быть явно маркированы как кешируемые или некешируемые, чтобы
клиенты могли использовать кешированные данные.
• Идентификация кэшируемых ресурсов
• Использование стандартных заголовков HTTP
• Валидация кэша
• Разделение кэша
Аннотации (Spring Cache): @Cacheable, @CachePut и @CacheEvict

7.

Единообразие интерфейса (Uniform Interface)
Упрощает и унифицирует взаимодействие. Основные принципы:
• Идентификация ресурсов (URI)
• Манипуляции с ресурсами через представления (HTTP методы)
• Самоописываемые сообщения (HTTP заголовки и коды статуса)
• Гипермедиа для управления состоянием (HATEOAS)

8.

Многоуровневая система (Layered System)
Cерверы могут располагаться на разных уровнях, при этом каждый
сервер взаимодействует только с ближайшими уровнями и не связан
запросами с другими

9.

Код по требованию (Code on Demand)
Серверы могут отправлять клиенту код по требованию (например,
скрипт для запуска видео). Так общий код приложения или сайта
становится сложнее только при необходимости.

10.

Преимущества REST
Недостатки REST
• Простота и легкость использования
• Отсутствие стандартизации
• Масштабируемость
• Ограничения HTTP
• Производительность
• Перегрузка данных
• Удобство тестирования и отладки

11.

Вопросы к спикеру
English     Русский Rules