RESTful API
Артём Кухаренко
План лекции
- REST
- HTTP/1.1
HTTP based RESTful API
- Аутентификация и Авторизация
- Сессии
- CORS
REST
Representational state transfer
Web resource
сущность или действие, которое может быть идентифицировано и обработано в Интернете.
Конечный автомат
математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных.
Предположим, что web-сервис - это конечный автомат, где состояния автомата представлены набором веб ресурсов приложения. Тогда клиент сервиса, зная URI ресурса и выполняющего над ресурсом определенный набор действий, способен менять состояние автомата, а также получать представление состояния автомата.
Набор правил REST
- Client-server architecture
- Statelessness
- Cacheability
-
Layered system
-
Uniform interface
Правила Uniform Interfacce
- Resource identification in requests
- Resource manipulation through representations
-
Self-descriptive messages
-
Hypermedia as the engine of application state
HTTP/1.1
HTTP based RESTful API
Из HTTP используем
- HTTP методы
- HTTP статусы
- HTTP заголовки
HTTP методы
- GET
- POST
- PUT
- PATCH
- DELETE
Примеры статусов
- 200
-
204
- 400
-
401
-
500
Примеры форматов представлений
- JSON
- XML
-
HTML
Аутентификация и Авторизация
Главное отличие аутентификации от авторизации заключается в том, что аутентификации определяет, кем является пользователь, а авторизация, что пользовать способен совершить.
Аутентификация
В большинстве случаев выполнение аутентификации совершается с помощью имени пользователя (имейла) и (или) пароля.
Парольные рекомендации
-
Используйте хэш
- С хэшом используйте соль
Авторизация
Для авторизованных запросов чаще всего используется Access Token
JWT рекомендации
- Не добавляйте sensitive данные в токен
- Храните токен в сессии, а не localStorage
Сессия
Сессионные рекомендации
- httponly
- secure
CORS
MVC

12 - RESTful API
By Startup Summer
12 - RESTful API
- 129