Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Роман Просин «REST of the best»

Роман Просин «REST of the best»

Вспомним основные концепции архитектурного стиля REST, рассмотрим лучшие практики применения на примерах ASP.NET Web API-сервисов.

DotNetRu

June 27, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. REST of the Best 2 ▪ Меня зовут Просин Роман.

    ▪ Мой путь разработчика начался более 7 лет назад ▪ 2 года я работаю разработчиком в ICDB Team Райффайзенбанка. ▪ Мы строим фронт для отделений, сервисы для других систем банка, меняем архитектуру старых сервисов. ▪ Помимо работы я люблю активный отдых, водить автомобиль, Айкидо и многое другое… Всем привет
  2. REST of the Best 3 ▪ Representational State Transfer ▪

    It is architecture style ▪ Свойства: – Производительность – Масштабируемость ▪ Ограничения: – Клиент-сервер – Отсутствие состояния – Кэширование – Единообразие интерфейса – Слои – Код по требованию REST - что это? Всем привет! Я Рой Филдинг.
  3. Цель REST of the Best 4 SOAP WCF HTTP Web

    API Кажется ничего не изменилось!..
  4. Модель зрелости RESTful API HATEOAS Операции определяются методами HTTP На

    каждый ресурс свой URI Один URI. Все операции - метод POST к этому URI. Hypermedia as the Engine of Application State
  5. REST of the Best 7 3 Checklist 2 Лучшие практики

    КОД 404 Объект не найден, операция провалена! Повторяю КОД 404
  6. REST of the Best 8 4 Open API В вашей

    спецификации сам чёрт ногу сломит!
  7. REST of the Best 9 5 Минуточку, у меня есть

    вопрос! Подведём итог
  8. Слои Клиент/Сервер Клиент Клиент/Прокси/Шлюз Сервер запрос ответ протокол REST of

    the Best 15 Клиент/Сервер 1 Сервер Клиент/Сервер N Сервер
  9. REST of the Best 18 Идентификатор ресурса (URI) Отлично! Теперь

    я всегда смогу найти нужную локацию по её названию.
  10. Схема использования HTTP методов Ресурс POST GET PUT DELETE locations

    Создаёт новый Возвращает все Обновляет все Удаляет все Locations/{name} Вернёт ошибку Вернёт экземпляр Обновит экземпляр если он есть Удалит экземпляр locations/{name}/games Создаст новую игру в локации Вернёт все игры в локации Обновит все игры в локации Удалит все игры в локации
  11. PUT vs PATCH REST of the Best 27 HTTP Method

    Идемпотентность POST GET PUT PATCH DELETE Объект v1 Объект v2 Объект v1 Объект v1
  12. REST of the Best 38 ✓ Проверьте все маршруты ✓

    Убедитесь, что все маршруты защищены ✓ Убедитесь, что сообщения запроса и ответа хорошо сформированы ✓ Убедитесь, что каждая операция возвращает правильные коды состояния ✓ Проверьте обработку исключений Checklist
  13. REST of the Best 40 ✓ Масштабируемость: ✓ Ресурсы ✓

    HTTP Methods ✓ Open API Specification ✓ Фильтры ✓ HATEOAS ✓ Производительность: ✓ Постраничный вывод ✓ Кэш Итог