GetAnalyst_OAuth_2_0_Практическое_руководство_по_Postman_для_интеграции.pdf
10.7 MB
📚 Практическое руководство по исследованию OAuth 2.0 в Mail ru 📚
Как разобраться с OAuth 2.0?
Только на реальной практике💻
Пройдите один из ключевых Flow для OAuth 2.0 через Postman, на примере интеграции с OAuth 2.0 сервером от Mail ru.
Интеграция с сервером OAuth 2.0 от Mail ru нужна, чтобы сделать кнопки в приложении:
+ "Войти через аккаунт Mail ru"
+ "Зарегистрироваться через аккаунт Mail ru".
👉 Результат работы по руководству:
1. Поймёте полную последовательность шагов OAuth 2.0 (Grant Type = Authorization Code)
2. Разберётесь, чем отличаются access token и refresh token
3. Поймёте, где и как токены использовать при вызове API
4. Чётко увидите, когда токен получать, как долго хранить и когда обновлять
🔖 Сохраняйте руководство и повторяйте шаги в Postman — это самый быстрый способ реально разобраться с OAuth.
Больше по OAuth 2.0:
#FoodDeliveryGA_oauth
#ИнтеграцииGA
Как разобраться с OAuth 2.0?
Только на реальной практике
Пройдите один из ключевых Flow для OAuth 2.0 через Postman, на примере интеграции с OAuth 2.0 сервером от Mail ru.
Интеграция с сервером OAuth 2.0 от Mail ru нужна, чтобы сделать кнопки в приложении:
+ "Войти через аккаунт Mail ru"
+ "Зарегистрироваться через аккаунт Mail ru".
👉 Результат работы по руководству:
1. Поймёте полную последовательность шагов OAuth 2.0 (Grant Type = Authorization Code)
2. Разберётесь, чем отличаются access token и refresh token
3. Поймёте, где и как токены использовать при вызове API
4. Чётко увидите, когда токен получать, как долго хранить и когда обновлять
Больше по OAuth 2.0:
#FoodDeliveryGA_oauth
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤🔥7❤5👍2⚡1
👉 Ключевые:
1. API (Application Programming Interface)
2. REST API (Representational State Transfer)
3. HTTP-методы запросов
4. Эндпоинты
5. Коды ответов
6. Ограничение частоты запросов (Rate Limiting)
7. Полезная нагрузка (Payload)
8. Заголовки (Headers)
9. Аутентификация
10. Авторизация
11. Пагинация
12. Кэширование
👉 Дополнительно:
1. OAuth
2. JWT Token
3. API Gateway
4. API Keys
5. Basic Authentication
6. Bearer Tokens
7. CORS
8. Webhooks
9. OpenAPI
10. API Versioning (Версионирование API)
11. Content Negotiation
12. Query Parameters
13. Path Parameters
14. API Documentation
15. API Monitoring
16. Throttling
17. Circuit Breaker
18. Idempotency (Идемпотентность)
19. API Proxy
20. Retry Logic (Логика ретраев / повторов)
21. Batch Processing (Пакетная обработка)
22. API Security
23. Health Checks
24. API Testing
25. Mock APIs
26. API Marketplace
27. API Schema
28. Semantic Versioning (Семантическое версионирование)
29. Hypermedia
30. API Deprecation (Устаревание API)
Всё самое важное и нужное в одном месте 😎
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤47❤🔥11👍8🔥4👀2
OAuth2_0_Регистрация_аккаунта_через_Войти_через_Mail_ru_GetAnalyst.pdf
1000.8 KB
🔑 "Войти через Госуслуги / Google / Mail ru": пример постановки задачи на OAuth 2.0 интеграцию 🔖
Сегодня одна из самых популярных задач — подключить единый аккаунт для входа во все приложения: “через Госуслуги”, “через Google” и т.д.
Я показываю подход на примере Mail.ru OAuth 2.0, потому что:
✔️ документация на русском (в отличие от Google),
✔️ можно быстро создать тестовое приложение и прогнать сценарий в Postman руками (в отличие от Госуслуг),
✔️ на нём удобно разобрать нюансы, которые потом повторяются и для других провайдеров.
Я подготовила:
👉 шаблон постановки задачи: “Первичная регистрация аккаунта через ‘Войти c Mail.ru’”.
Это интеграционный Use Case.
На что важно обратить внимание:
◽️ 1) Токен Mail.ru — не “токен вашей системы”
В этом сценарии access_token Mail.ru нужен только, чтобы один раз получить базовые данные профиля и создать пользователя.
Дальше пользователь должен работать на внутренней авторизации FoodDeliveryGA (в примере — Bearer Token на 30 дней).
Внутренняя авторизация может быть тоже OAuth 2.0, а может отличаться, как в примере, и быть более простой.
◽️ 2) Есть внешние методы OAuth и внутренние методы вашей авторизации
В постановке чётко разделены:
+ внешние вызовы (Mail.ru OAuth + REST API),
+ внутренние API FoodDeliveryGA (/auth/mailru/authorize, /auth/mailru/token).
◽️ 3) Flow “через code”, а не “токен сразу на фронт”
Показан безопасный вариант OAuth 2.0:
Frontend получает code, а токены внешнего провайдера получает уже Backend.
Это стандарт для продуктовых решений.
◽️ 4) Декомпозиция задачи важна
В примере только Use Case авторизации, а по факту нужно делать:
+ первичную регистрацию
+ привязку акканта Mail.ru к существующей учетке
+ вход в аккаунт (очередная авторизация)
+ проверка доступа хотя бы раз в 24 часа (что токен не отозвали и не сменили)
+ деавторизация.
📌 Шаблон можно использовать как основу для постановок задач для “Войти через Google / Госуслуги” — меняется провайдер и детали API, но структура постановки задачи остаётся такой же.
Документ точно пригодитя🔖 🤝
Сохраните — это шаблон, который закрывает 80% типовых вопросов по OAuth.
#FoodDeliveryGA_oauth
#ИнтеграцииGA
Сегодня одна из самых популярных задач — подключить единый аккаунт для входа во все приложения: “через Госуслуги”, “через Google” и т.д.
Я показываю подход на примере Mail.ru OAuth 2.0, потому что:
✔️ документация на русском (в отличие от Google),
✔️ можно быстро создать тестовое приложение и прогнать сценарий в Postman руками (в отличие от Госуслуг),
✔️ на нём удобно разобрать нюансы, которые потом повторяются и для других провайдеров.
Я подготовила:
👉 шаблон постановки задачи: “Первичная регистрация аккаунта через ‘Войти c Mail.ru’”.
Это интеграционный Use Case.
На что важно обратить внимание:
◽️ 1) Токен Mail.ru — не “токен вашей системы”
В этом сценарии access_token Mail.ru нужен только, чтобы один раз получить базовые данные профиля и создать пользователя.
Дальше пользователь должен работать на внутренней авторизации FoodDeliveryGA (в примере — Bearer Token на 30 дней).
Внутренняя авторизация может быть тоже OAuth 2.0, а может отличаться, как в примере, и быть более простой.
◽️ 2) Есть внешние методы OAuth и внутренние методы вашей авторизации
В постановке чётко разделены:
+ внешние вызовы (Mail.ru OAuth + REST API),
+ внутренние API FoodDeliveryGA (/auth/mailru/authorize, /auth/mailru/token).
◽️ 3) Flow “через code”, а не “токен сразу на фронт”
Показан безопасный вариант OAuth 2.0:
Frontend получает code, а токены внешнего провайдера получает уже Backend.
Это стандарт для продуктовых решений.
◽️ 4) Декомпозиция задачи важна
В примере только Use Case авторизации, а по факту нужно делать:
+ первичную регистрацию
+ привязку акканта Mail.ru к существующей учетке
+ вход в аккаунт (очередная авторизация)
+ проверка доступа хотя бы раз в 24 часа (что токен не отозвали и не сменили)
+ деавторизация.
📌 Шаблон можно использовать как основу для постановок задач для “Войти через Google / Госуслуги” — меняется провайдер и детали API, но структура постановки задачи остаётся такой же.
Документ точно пригодитя
Сохраните — это шаблон, который закрывает 80% типовых вопросов по OAuth.
#FoodDeliveryGA_oauth
#ИнтеграцииGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23🔥10👍9🤩2🤣1
HTTP — это протокол прикладного уровня, используемый для передачи данных между клиентом и сервером в Интернете.
👉 Структура метода HTTP API
(без архитектурного стиля REST)
Запрос:
+ тип метода (GET/POST/PUT/PATCH/DELETE)
+ URL (https://api.test.com/public/v1/products?name=Яблоко&limit=10)
+ заголовки - headers
+ тело запроса (json/xml/html/файл и другие)
Ответ:
+ статус код (HTTP-200 и другие)
+ заголовки - headers
+ тело ответа (json/xml/html/файл и другие)
REST API — это архитектурный стиль, использующий HTTP в качестве протокола передачи данных (или: основанный на протоколе HTTP).
👉 Структура метода REST API = Структуре метода HTTP API
Только REST API методы используют дополнительные рекомендации по тому, как их делать.
Например:
▫️ в REST API используется полный набор методов GET/POST/PUT/PATCH/DELETE, а в HTTP API могут быть все POST 🥲
▫️ в REST API рекомендуется использовать JSON-формат сообщений, а в HTTP API можно делать что угодно.
Всё самое важное про HTTP на картинках к посту ☝️
🔗 Ещё подробнее про связь HTTP и REST API в этой статье.
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤13👍5
Forwarded from 👩🏻💻 Подкаст Системных Аналитиков | GetAnalyst
⏯ ЭПИЗОД 39:
Всё про WebSocket: что это, где используют и зачем он в архитектуре
WebSocket встречается всё чаще. И понимать его хотя бы на базовом уровне становится важно.
Там, где есть чаты, одновременная работа пользователей и любые обновления в реальном времени, WebSocket API появляется очень быстро💬
Подробно рассказываем про WebSocket в новом выпуске подкаста GetAnalyst:
🔗 Сайт эпизода с шаблоном задачи на WebSocket API
Эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Telegram
⏯ Castbox
⏯ Звук
⏯ Spotify
⏯ RuTube
⏯ YouTube
⏯ VK Video
Сообщество системных аналитиков GetAnalyst — опыт здесь📍
Всё про WebSocket: что это, где используют и зачем он в архитектуре
WebSocket встречается всё чаще. И понимать его хотя бы на базовом уровне становится важно.
Там, где есть чаты, одновременная работа пользователей и любые обновления в реальном времени, WebSocket API появляется очень быстро
Подробно рассказываем про WebSocket в новом выпуске подкаста GetAnalyst:
Эпизод доступен в:
⏯ Apple Podcast
⏯ Яндекс.Музыка
⏯ Telegram
⏯ Castbox
⏯ Звук
⏯ Spotify
⏯ RuTube
⏯ YouTube
⏯ VK Video
Сообщество системных аналитиков GetAnalyst — опыт здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥17❤8🔥4
А тут точно надо AI? Показательная история из университета 🤓
Мне кажется, моя учёба по AI в Johns Hopkins University продолжается бесконечно 😅
И она делает меня счастливее, потому что ощущение “как много я не знала” - лучшее!
Но и без "поумничать" у меня судя по всему никуда.
На последнем занятии мы разбирали готовое решение AI чат-бота для интернет-магазина на Python.
Учебное демо - ок… но я-то думаю про реальность.
И поэтому снова начала перестраивать архитектуру решения и рассуждать с преподавателем по поводу изменения кода на 80% 😃
Почему?
👉 Потому что многие путают внедрение AI и обычную автоматизацию, и пытаются засунуть LLM туда, где достаточно нормально запрограммировать.
📌 Рассказываю к чему докопалась:
1. Есть AI чат-бот для Интернет-магазина.
2. Пользователь пишет:
«Где мой заказ? И когда его доставят?»
3. LLM (большая языковая модель = AI) понимает: вопрос индивидуальный → просит номер заказа.
4. Пользователь присылает номер.
И дальше варианты 👇
Это было в учебном примере.
Ок, так можно.
Но зачем в LLM вообще вгрузили базу заказов?
Всех-всех пользователей. Там и персональные данные, и чеки, и всё в этом файле.
Ещё и через большой JSON-файл, который явно при каждом новом диалоге (или хотя бы раз в час), надо обновлять.
Зачем вообще заставлять LLM парсить этот JSON?
При таком раскладе ещё и сложные промпты надо писать, чтобы LLM ни в коем случае не выдала данные по чужому заказу и не раскрыла чужие перс данные.
Если уж что-то и подгружать, то только заказы авторизованного пользователя в начале диалога.
Но нет, в учебном примере грузили вообще всё 🥲
Уже лучше.
Есть недавно созданный MCP-протокол, используя который можно подключиться к вашей БД PostgreSQL и забирать из неё нужные данные напрямую.
Это уже лучше, чем работа с JSON-файлом со всеми заказами.
Одна проблема появляется.
Надо защищаться, чтобы у нас не украли БД, обманув LLM через вредоносный промпт (команду к AI).
Про MCP делала небольшое демо тут.
Как по мне - это лучший вариант.
Простая и привычная автоматизация, которая решает все проблемы защиты перс данных и потенциальных атак, которые могут сделать для LLM.
Тут:
+ и запросы к AI экономим (да-да, запросы по API платные, если не своя LLM, а, например, DeepSeek или OpenAI)
+ и кучу промптов на защиту от кражи перс данных придумывать не надо
+ LLM - про понимание пользователя, вызов метода из кода - про понятное получение данных из БД
Итого 👇
В задаче на AI-чат-бота для интернет-магазина LLM нужна не как “доступ к базе”, а как умный диспетчер:
• распознать команду от пользователя “получить статус доставки” или иную
• запросить у пользователя номер заказа
• аккуратно вызвать нужный метод
• красиво сформулировать ответ пользователю
Остальное - отдайте программистам на автоматизацию.
А “парсить огромный JSON” и писать кучу защитных промптов - это норм как учебный пример, но не как продакшн.
Такая вот история 😃
Надеюсь удалось донести вам чуть больше "подводных камней" про системы с AI.
А вообще я уже много месяцев с урывками выходных и в абсолютном завале со своей учёбой.
Но узнавать и пробовать новое,особенно в AI - 🤍🤍🤍
#AI_for_analysts
Мне кажется, моя учёба по AI в Johns Hopkins University продолжается бесконечно 😅
И она делает меня счастливее, потому что ощущение “как много я не знала” - лучшее!
Но и без "поумничать" у меня судя по всему никуда.
На последнем занятии мы разбирали готовое решение AI чат-бота для интернет-магазина на Python.
Учебное демо - ок… но я-то думаю про реальность.
И поэтому снова начала перестраивать архитектуру решения и рассуждать с преподавателем по поводу изменения кода на 80% 😃
Почему?
👉 Потому что многие путают внедрение AI и обычную автоматизацию, и пытаются засунуть LLM туда, где достаточно нормально запрограммировать.
📌 Рассказываю к чему докопалась:
1. Есть AI чат-бот для Интернет-магазина.
2. Пользователь пишет:
«Где мой заказ? И когда его доставят?»
3. LLM (большая языковая модель = AI) понимает: вопрос индивидуальный → просит номер заказа.
4. Пользователь присылает номер.
И дальше варианты 👇
1️⃣ Заранее, до начала диалога, загрузить в LLM всю базу заказов (через файл) и искать там
Это было в учебном примере.
Ок, так можно.
Но зачем в LLM вообще вгрузили базу заказов?
Всех-всех пользователей. Там и персональные данные, и чеки, и всё в этом файле.
Ещё и через большой JSON-файл, который явно при каждом новом диалоге (или хотя бы раз в час), надо обновлять.
Зачем вообще заставлять LLM парсить этот JSON?
При таком раскладе ещё и сложные промпты надо писать, чтобы LLM ни в коем случае не выдала данные по чужому заказу и не раскрыла чужие перс данные.
Если уж что-то и подгружать, то только заказы авторизованного пользователя в начале диалога.
Но нет, в учебном примере грузили вообще всё 🥲
2️⃣ Пусть LLM через MCP полезет в базу и достанет данные
Уже лучше.
Есть недавно созданный MCP-протокол, используя который можно подключиться к вашей БД PostgreSQL и забирать из неё нужные данные напрямую.
Это уже лучше, чем работа с JSON-файлом со всеми заказами.
Одна проблема появляется.
Надо защищаться, чтобы у нас не украли БД, обманув LLM через вредоносный промпт (команду к AI).
Про MCP делала небольшое демо тут.
3️⃣ Мы принимаем номер заказа от пользователя и далее вызываем обычный метод системы, который возвращает статус и дату доставки
Как по мне - это лучший вариант.
Простая и привычная автоматизация, которая решает все проблемы защиты перс данных и потенциальных атак, которые могут сделать для LLM.
Тут:
+ и запросы к AI экономим (да-да, запросы по API платные, если не своя LLM, а, например, DeepSeek или OpenAI)
+ и кучу промптов на защиту от кражи перс данных придумывать не надо
+ LLM - про понимание пользователя, вызов метода из кода - про понятное получение данных из БД
Итого 👇
В задаче на AI-чат-бота для интернет-магазина LLM нужна не как “доступ к базе”, а как умный диспетчер:
• распознать команду от пользователя “получить статус доставки” или иную
• запросить у пользователя номер заказа
• аккуратно вызвать нужный метод
• красиво сформулировать ответ пользователю
Остальное - отдайте программистам на автоматизацию.
А “парсить огромный JSON” и писать кучу защитных промптов - это норм как учебный пример, но не как продакшн.
Такая вот история 😃
Надеюсь удалось донести вам чуть больше "подводных камней" про системы с AI.
А вообще я уже много месяцев с урывками выходных и в абсолютном завале со своей учёбой.
Но узнавать и пробовать новое,особенно в AI - 🤍🤍🤍
#AI_for_analysts
YouTube
Интеграции с MCP (Model Context Protocol) — новые тренды AI для системных аналитиков
Обзор от сообщества @GetAnalyst (Telegram-канал: https://t.me/getanalysts)
В видео:
🔹 Pet-проект с MCP: чат-бот, который интегрирован к Stripe, чтобы управлять онлайн-магазином
🔹 Сделано за 2 часа, без глубокого опыта разработки 😱
🔹 Делюсь идеями.
---…
В видео:
🔹 Pet-проект с MCP: чат-бот, который интегрирован к Stripe, чтобы управлять онлайн-магазином
🔹 Сделано за 2 часа, без глубокого опыта разработки 😱
🔹 Делюсь идеями.
---…
1❤42❤🔥10🔥7👏6🦄3
🤍 Расширенный формат в феврале 2026:
+ 3 доп. онлайн-практики
+ 9 месяцев доступа к обучению
✅ записи уроков и Confluence-документация по доп. проекту
👉 Узнать подробности и записаться
🎁 Только до 12 февраля:
лучшая цена + обучение "Интеграции 4.0 - продвинутый уровень" в подарок.
В ходе работы учимся проектировать методы REST API с нуля, глядя на требования, архитектуру, БД и дизайн UI/UX системы.
❗️ Это не про интеграции и чтение готовой API-документации, а про умение проектировать REST API методы с нуля, самостоятельно, и выстраивать стандарты API на любом проекте.
Проект с подвохами и сложностями, на котором “набиваем шишки”, учимся писать с нуля и структурировать API-документацию, осваиваем ключевые инструменты СА 🛠
Это самая весомая и “программистская” часть вашего профессионального портфолио 🤩
Есть вопросы?
Пишите @getanalyst или заполняйте анкету предзаписи. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на вопросы! 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍1
GetAnalyst_Параметры_в_запросах_REST_API_HTTP.png
2.2 MB
📗 3 вида параметров в HTTP (REST API), где чаще всего путаются аналитики 📗
Мини-гайд про виды параметров HTTP (REST API) запросов, в которых чаще всего косячат новички:
👉 query-parameters — после ? в URL.
фильтры, сортировки, пагинация, поисковые строки, api-key (если так принято).
Формат:
Получить список продуктов с названием "milk", 10 записей, начиная с 20-ой, сортировать по возрастанию цены
Типичные проблемы:
• Отправляют бизнес-данные для создания/изменения в query, вместо тела json.
• Дробят сортировку в несколько параметров, вместо одного аккуратного.
• Добавляют query в POST/PUT без причины.
👉 path-parameters — часть пути (эндпоинта).
Идентификатор конкретного ресурса или вложенного ресурса.
Формат:
Можно внутри пути:
Типичные проблемы:
• Отправляют ?productId=… в query, хотя это сущность, а не фильтр.
👉 body-parameters — тело запроса json.
Сообщение, когда создаём/меняем данные.
Только для POST | PUT | PATCH.
Кроме json могут быть другие форматы.
Формат:
Типичные проблемы:
• Отправляют огромное количество параметров в query-параметры, которые там не помещаются, и могут быть обрезаны сервером при определенных настройках безопасности.
• Используют body (json) для GET или DELETE, где оно не поддержано.
В гайде:
✔️ название параметра и его определение
✔️ скрины из Postman
✔️ особенности
✔️ примеры
Изучайте, запоминайте и не путайтесь 🤝
#RestApiGA
Мини-гайд про виды параметров HTTP (REST API) запросов, в которых чаще всего косячат новички:
👉 query-parameters — после ? в URL.
фильтры, сортировки, пагинация, поисковые строки, api-key (если так принято).
Формат:
GET /products?name=milk&limit=10&offset=20&order=price,asc
Получить список продуктов с названием "milk", 10 записей, начиная с 20-ой, сортировать по возрастанию цены
Типичные проблемы:
• Отправляют бизнес-данные для создания/изменения в query, вместо тела json.
• Дробят сортировку в несколько параметров, вместо одного аккуратного.
• Добавляют query в POST/PUT без причины.
👉 path-parameters — часть пути (эндпоинта).
Идентификатор конкретного ресурса или вложенного ресурса.
Формат:
GET /products/{productId} → GET /products/3a46b…
Можно внутри пути:
PATCH /products/{productId}/archive
Типичные проблемы:
• Отправляют ?productId=… в query, хотя это сущность, а не фильтр.
👉 body-parameters — тело запроса json.
Сообщение, когда создаём/меняем данные.
Только для POST | PUT | PATCH.
Кроме json могут быть другие форматы.
Формат:
{
"name": "Яблоки Гала",
"shortName": "Гала",
"description": "Сладкие и хрустящие"
}
Типичные проблемы:
• Отправляют огромное количество параметров в query-параметры, которые там не помещаются, и могут быть обрезаны сервером при определенных настройках безопасности.
• Используют body (json) для GET или DELETE, где оно не поддержано.
В гайде:
✔️ название параметра и его определение
✔️ скрины из Postman
✔️ особенности
✔️ примеры
Изучайте, запоминайте и не путайтесь 🤝
#RestApiGA
🔥38❤15👍10🤩1
📌📚 Подборка материалов по REST API: теория + примеры + выгрузки требований из Confluence ⭐️
Собрала для вас максимально полную коллекцию материалов, которые помогут поэтапно погрузиться в тему проектирования REST API.
Изучать рекомендую последовательно.
🚀 Основы:
🔗 Протокол HTTP - основа REST
🔗 Структура REST API (HTTP) метода в одной картинке
🔗 Как выбирать методы: GET, POST, PUT, PATCH, DELETE
🔗 Правила проектирования URL для запроса
🔗 Всё про JSON в одной картинке - тело (body) для запросов и ответов
🔗 Мини-книга про JSON
🔗 3 вида параметров в HTTP (REST API), где чаще всего путаются аналитики
🔗 В чем отличие REST от RESTful API?
🔗 Как связаны JSON, UI и БД
🔗 Связь БД и дизайна REST API
+ Проект “Система для автосервиса” - видео-обучение:
🔗 Сбор бизнес-требований, погружение в контекст
🔗 Определение сущностей и проектирование логической модели БД
🔗 REST API с нуля: дизайн методов для работы менеджера с заявками
🤝 Уверенное владение:
🔗 Элементы пагинации (limit, offset, count) в REST API для работы со списками
🔗 Headers - заголовки запросов и ответов
🔗 Аутентификация и авторизация в API
🔗 Проектирование и документирование ошибок в REST API
🔗 REST API - 6 главных принципов
💪 Продвинутый уровень:
🔗 Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)
🔗 OAuth 2.0
🔗 Получение данных через POST в REST API + кэширование
🔗 Версионирование API. Обратная совместимость в API
🔗 Идемпотентность и коммутативность API
🔗 Исследование реальных REST API на соответствие REST: Trello, Todoist
🛠 Инструменты тестирования и документирования:
🔗 Инструменты аналитика для работы с API
🔗 Postman: навык тестирования REST API за вечер
🔗 Тестирование API банка ВТБ - практическое руководство
🟢 Swagger (OpenAPI) - практические руководства
🔗 Проект по онлайн-календарю
Управление мероприятиями:
🔗 часть 1
🔗 часть 2
🔗 часть 3
📑 Примеры требований - выгрузки задач из Confluence
🔗 Шаблон постановки задачи на REST API-метод для Confluence
🔗 Cоздание товара - POST /products
🔗 Создать мероприятие - POST /events
🔗 Редактировать товар - PUT /products/{productId}
🔗 Получить рецепт - GET /recipes/{recipeId}
🔗 Получить список книг - GET /books
🔗 Образец документации в Postman
🤖 AI для REST API
🔗 AI-бот по дизайну REST API методов от GetAnalyst (под VPN)
🔗 Структура промпта
👩💻 Собеседования
🔗 Вопросы и ответы по REST API к собеседованию на СА + AI-помощник для подготовки
🔗 Открытая база вопросов и ответов к собеседованиям на СА
🔗 42 API-термина, которые спрашивают СА на собеседовании: чек-лист
Также вы можете найти у нас мини-обучения и продвинутую практическую программу Дизайн REST API для опытных аналитиков.
Делитесь с коллегами, особенно с джунами и мидлами СА, которым надо прокачать навыки работы с Backend/API!
Сохранили? Поддержите ❤️
#RestApiGA
Собрала для вас максимально полную коллекцию материалов, которые помогут поэтапно погрузиться в тему проектирования REST API.
Изучать рекомендую последовательно.
🚀 Основы:
+ Проект “Система для автосервиса” - видео-обучение:
🤝 Уверенное владение:
💪 Продвинутый уровень:
🛠 Инструменты тестирования и документирования:
🟢 Swagger (OpenAPI) - практические руководства
Управление мероприятиями:
📑 Примеры требований - выгрузки задач из Confluence
🤖 AI для REST API
👩💻 Собеседования
Также вы можете найти у нас мини-обучения и продвинутую практическую программу Дизайн REST API для опытных аналитиков.
Делитесь с коллегами, особенно с джунами и мидлами СА, которым надо прокачать навыки работы с Backend/API!
Сохранили? Поддержите ❤️
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤101❤🔥17🔥13🍾3
[GetAnalyst] Кэширование .pdf
2 MB
🚀 Всё про кэш 🚀
Кэш — двигатель производительности системы.
Именно он спасает нас от медленных ответов и заставляет экраны приложений грузиться быстрее.
Кэш есть в процессорах, браузерах, БД, микросервисах.
Но просто положить данные в кэш недостаточно.
Важно понимать:
+ когда кэшировать,
+ что кэшировать,
+ как обновлять кэш.
С мини-книгой к посту вы сможете быстро разобраться в особенностях работы с кэшем.
🔹 Введение
🔹 Зачем кэшировать
🔹 Стратегии кэширования
🔹 Инвалидация кэша
🔹 Стратегии вытеснения кэша
🔹 Время жизни кэша (TTL)
🔹 Согласованность со временем
🔹 Холодный и горячий кэш
🔹 Standalone кэш
Мало работали с кэшем?
Загружайте мини-книгу и изучайте ключевые термины 📚
#АрхитектураGA #RestApiGA
Кэш — двигатель производительности системы.
Именно он спасает нас от медленных ответов и заставляет экраны приложений грузиться быстрее.
Кэш есть в процессорах, браузерах, БД, микросервисах.
Но просто положить данные в кэш недостаточно.
Важно понимать:
+ когда кэшировать,
+ что кэшировать,
+ как обновлять кэш.
С мини-книгой к посту вы сможете быстро разобраться в особенностях работы с кэшем.
🔹 Введение
🔹 Зачем кэшировать
🔹 Стратегии кэширования
🔹 Инвалидация кэша
🔹 Стратегии вытеснения кэша
🔹 Время жизни кэша (TTL)
🔹 Согласованность со временем
🔹 Холодный и горячий кэш
🔹 Standalone кэш
Мало работали с кэшем?
Загружайте мини-книгу и изучайте ключевые термины 📚
#АрхитектураGA #RestApiGA
🔥33❤11👍4
Кэш (cache) — быстрый временный слой хранения результатов вычислений или запросов API (и не только), чтобы при повторном обращении к серверу вернуть ответ не выполняя вычисления и логику запроса заново.
👉 Что хранит:
Уже вычисленные данные и/или их части:
JSON ответа, HTML-код, агрегаты, объекты
👉 Что кэшировать:
▫️Карточки сущностей, справочники - медленно меняющиеся сущности
▫️Списки с параметрами фильтров/пагинации
▫️Агрегаты/отчёты: дорогие запросы
▫️HTTP-404 на короткое время
👉 НЕ кэшировать:
▫️Ответы на изменяющие методы (POST/PUT/PATCH/DELETE)
▫️Секретные/чувствительные данные (no-store)
👉 Где хранится:
Для Frontend:
+ в памяти мобилок или десктопов
+ в памяти браузера
+ иногда в локальных БД
Для Backend:
+ CDN/прокси
+ Специализированные СУБД: Redis / Memcached
+ иногда в самой БД - готовые JSON, чтобы не вычислять
👉 Как искать нужные данные:
По ключу кэша - обычно это хеш нормализованного запроса/параметров
👉 Поведение алгоритмов при работе с кэшем:
✅ Cache Hit:
Если данные по ключу кэша найдены, то вернуть их.
Проверить время жизни кэша, прежде чем возвращать ответ
❌ Cache Miss:
Если кэш не найден или данные в кэше устаревшие, то приложение:
+ должно обратиться к источнику за данными (БД или вн. система)
+ формирует ответ (JSON или др)
+ пишет актуальные данные в кэш
🔖 Общий порядок работы на картинках к посту
👉 Политики вытеснения кэша (автоочистка)
▫️ LRU (Least Recently Used) — удаляем те ключи, к которым давно не обращались
▫️ LFU (Least Frequently Used) — удаляем ключи с наименьшим числом обращений
▫️ TTL (Time To Live) — запись жива фиксированное время, потом протухает
▫️ Size-based — выселение по суммарному объёму (байты), часто вместе с LRU/LFU
👉 Заголовки в REST API (Headers)
В запросах:
Cache-Control
If-None-Match
If-Modified-Since
If-Match
If-Unmodified-Since
Only-If-Cached
Pragma (устар.)
В ответах:
Cache-Control
ETag
Last-Modified
Vary
Expires
Age
Date
Cache-Status
Surrogate-Control
#RestApiGA #АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥26🔥9👍4❤3