TGTGInsightаналитика telegramLIVE / telegram public index
← Системный сдвиг
Системный сдвиг avatar

TGINSIGHT POST

Post #274

@systemswing

Системный сдвиг

Просмотры2,930Количество просмотров
Опубликован17 янв.17.01.2024, 13:02
Содержимое поста

Содержимое

ByteByteGo (проект Алекса Сюя, автора System Design Interview) прислал шпаргалку по основным принципам REST API. Разрешение, правда маловато, так что продублирую текстом. Вот что они считают главным в REST: 1️⃣Клиент-сервер. Причем понимают это как разделение пользовательского интерфейса и хранения/процессинга данных. Что, в свою очередь, обеспечивает масштабирование и переносимость. 2️⃣Отсутствие состояния. В каждом запросе клиент отправляет всю необходимую для обработки информацию, состояние сессии не хранится на сервере. 3️⃣Кэширование. Ответ сервера может быть в явном виде помечен как кэшируемый или некэшируемый, что позволяет клиенту оптимизировать число перезапросов. 4️⃣Слоистая система. Для клиента прозрачна, а на стороне сервера позволяет организовать промежуточные слои — для безопасности, балансировки, изолирования реальной архитектуры обработки и хранения и т.п. 5️⃣Код по запросу. Сервер может передавать клиенту программный код для обработки или представления данных, таким образом расширяя возможности клиента и добавляя гибкости. 6️⃣Стандартизированный интерфейс: понятно, как строить запрос. Элементы запроса: 🔹Глагол http (GET, POST, PUT, PATCH, DELETE) 🔹Протокол (всегда HTTPS://) 🔸Субдомен для API 🔸Версия (/v1) 🔸Эндпоинт — имя ресурса (существительное) 🔹Параметры фильтрации 🔹Параметры пагинации (page, limit) А теперь проверьте себя — используете ли вы эти возможности в своих "REST API", или вы просто JSON'ы кидаете через HTTP? 😉