GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
20.7K subscribers
2.21K photos
78 videos
220 files
1.25K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart
Download Telegram
📌📚 Подборка материалов по 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
Please open Telegram to view this post
VIEW IN TELEGRAM
3101❤‍🔥17🔥13🍾3
[GetAnalyst] Кэширование .pdf
2 MB
🚀 Всё про кэш 🚀

Кэш — двигатель производительности системы.

Именно он спасает нас от медленных ответов и заставляет экраны приложений грузиться быстрее.

Кэш есть в процессорах, браузерах, БД, микросервисах.

Но просто положить данные в кэш недостаточно.
Важно понимать:
+ когда кэшировать,
+ что кэшировать,
+ как обновлять кэш.

С мини-книгой к посту вы сможете быстро разобраться в особенностях работы с кэшем.

🔹 Введение
🔹 Зачем кэшировать
🔹 Стратегии кэширования
🔹 Инвалидация кэша
🔹 Стратегии вытеснения кэша
🔹 Время жизни кэша (TTL)
🔹 Согласованность со временем
🔹 Холодный и горячий кэш
🔹 Standalone кэш

Мало работали с кэшем?
Загружайте мини-книгу и изучайте ключевые термины 📚

#АрхитектураGA #RestApiGA
🔥3311👍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👍43
Как меня видит ChatGPT? 😀

С последними обновлениями ChatGPT начал потрясающе справляться с задачей генерации изображений.

От генерации людей с 8 пальцами на руке до реально крутых и ожидаемых картинок 😍
И этот прорыв всего за один год!

Если вы активно пользуетесь:
https://chatgpt.com/
или
https://gemini.google.com/

👉 то попробуйте этот промпт:
Create a caricature of me and my job based on everything you know about me

на русском:
Нарисуй меня в виде карикатуры вместе с моей работой. Используй всё, что ты обо мне уже знаешь


👉 Дополнительно потребуется загрузить ваше фото: можно сразу, либо AI вас сам спросит.


Только ChatGPT/Gemini. В других нейросетях пока не достигли такого уровня "вау", а где-то генерация изображений просто не поддерживается.


Как вам результат по мне? Похожа? 😀

Кто активно пользуется ChatGPT - делитесь своими карикатурами)) узнаем как AI видит аналитиков

#AI_for_analysts
🔥3818🥰3🤩3❤‍🔥1
💜🧠 [14-17 февраля] Postman + Insomnia + AI для REST API 🧠🧡

Вроде знаете всё по REST API, но на практике не хватает глубокого понимания, уверенности в знаниях и инструментов?

👉 Тогда наш открытый урок станет ценной находкой для вас!

🔗 Зарегистрироваться


Разберём 3 ключевых инструмента СА, чтобы структурировать ваши знания REST API + сделать работу быстрее и увереннее!

👉 План:
1. База по REST API на примерах
2. Практика в Postman
3. Практика в Insomnia
4. Настройка AI-ассистента для проектирования REST API

👉 Занятие актуально, если:
переходите в СА и не хватает технических навыков
хотите получить опыт работы с REST API на практике
готовитесь к собеседованию на Middle+/Senior СА
хотите освоить новые инструменты, чтобы ускорить свою работу



💜 Postman, Insomnia и AI:
🔥 погружение в REST API на реальных примерах


🗓 Доступ: 14-17 февраля [сб-вт]
🕘 Время на обучение: ~3.5 часа

🔗 Зарегистрироваться



Планируйте время и получайте новый уникальный опыт! 💜🧠


—————————————————
👩‍🎓 Открытый урок проводится в качестве вводного занятия к практической программе Дизайн REST API.
Please open Telegram to view this post
VIEW IN TELEGRAM
18😍4❤‍🔥2🥰1🦄1
🧑‍💻 Квиз с подвохами на понимание REST API: проверь себя за 3 минуты 🎲

REST API кажется понятным и логичным…
пока не надо спроектировать метод под реальную продуктовую задачу, а не сделать пример из теста/учебника.

В реальных API нюансов больше, чем кажется: версионирование, доменные префиксы, идемпотентность, ограничения HTTP — и это только начало.


Готовы "пройтись по граблям"? 😃

Подготовила 3 задачи с подвохами по REST API на примере проекта #JobMatchGA — сервиса поиска работы, где кандидаты откликаются на вакансии, а рекрутеры управляют статусами откликов.

Этот квиз не проверяет заученные определения.
Он проверяет, как вы на практике будете проектировать REST API методы для реальных систем.

Подсказки:
📚 Примеры API с разбором структуры методов
📚 Как выбирать методы: GET, POST, PUT, PATCH, DELETE
📚 Правила проектирования URL для запроса


👉 Базовый URL: https://jobmatchga.com/
👉 Версия API: 1.1 для всех методов

👉 В задачах может быть 1..N правильных вариантов ответа — выбирайте все корректные.


Ответы начнём разбирать завтра.
#RestApiGA


Задачи 👇👇👇
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3❤‍🔥2🔥2
1. Какой метод + URL выбрать для получения списка вакансий (для кандидата), чтобы он соответствовал REST API?
Anonymous Poll
9🔥1
Роскомнадзор начал меры по замедлению работы Telegram с 10 февраля 2026 📉

[актуально для участников сообщества из России]


Друзья, вчера получили много ваших сообщений в ЛС. Многие переживают из-за новости о потенциальной блокировке Telegram в России.

Это действительно наиболее вероятный сценарий. Так как история с блокировкой Whats App началась так же.


Сейчас отвечу на вчерашние вопросы всем:
👉 мы всегда будем на связи и никуда не пропадаем 📞📲📩

Если Telegram будет работать нестабильно, у нас есть альтернативные площадки, где вы сможете нас найти.

———————————-

Вот полный список ссылок на наши каналы и сообщества:

Разрешено в РФ
VK
Мессенджер Max
RuTube
Сайт GetAnalyst.ru


В нестабильной зоне - Telegram:
⚠️ GetAnalyst Навыки - продвинутый уровень
⚠️ Для начинающих в СА и БА
⚠️ Чат сообщества
⚠️ Подкаст (здесь ссылки на все аудио-площадки)


Доступно под VPN:
🔺 Instagram
🔺 LinkedIn
🔺 YouTube



👉 Подписывайтесь сейчас на удобные площадки, чтобы точно быть не связи.

———————————-

VPN в России скоро можно будет не выключать 🔓
Задумайтесь о развёртывании своего личного VPN-сервера, чтобы не гонять свои данные через чужие платные сервера.


Держимся на связи и не теряемся.
Спасибо вам за сообщения ❤️❤️❤️


С добром и заботой,
Екатерина Ананьева,
и команда GetAnalyst 🤍
Please open Telegram to view this post
VIEW IN TELEGRAM
46💔8👍5❤‍🔥2😢2
🐞 Разбор вопросов с подвохами по REST API: какой HTTP-метод + URL выбрать? 🐞

От того, как вы выбираете метод + URL, зависит, будет ли ваш REST API понятным и предсказуемым для клиентов и команды.

В этом посте разберём типовые ошибки в дизайне эндпоинтов — те самые, из-за которых потом появляются “костыли”, споры в чатах и переделки.


API-метод:
👉 Получение списка вакансий
[результаты]


A. POST .../api/v1.1/jobs/search

Получение, просмотр, поиск - это всё про метод GET.
Метод POST - для создания данных в БД.

Да, так делают. Но это уже просто HTTP API, без стиля REST.


B. GET .../api/jobs/v1.1/list

Две ошибки в одном методе и 14% голосов 🥲

1. Версию рекомендуется делать ДО указания ресурса / объекта данных (jobs), которым управляют.

2. Никакого list не надо! По стандарту GET /jobs/{jobId} получить конкретную вакансию, а GET /jobs без id - список.


C. GET .../api/v1.1/jobs
Тут всё идеально с точки зрения дизайна REST API.


D. POST .../api/v1.1/jobs
Метод POST - для создания данных в БД.
Это метод "Создать вакансию".


E. GET .../api/v1.1/job

Тут всё отлично, но голосов мало.
Почему не выбрали?
👉 Единственное число в эндпоинте - это ок для REST API. Писала об этом тут.


▫️ F. GET .../api/v1.1/public/jobs

Ок, но не ок.
Если public - название каталога API на сервере, то лучше его делать ДО версии, а не после.
Вариант допустим, но не лучший.


▫️ G. GET .../api/v1.1/candidate/jobs

Ок, но не ок.
Проблема как и выше, но тут считаем, что API для кандидата и название каталога API - candidate?

Сейчас метод читается как "получить вакансии кандидатов...?".


H. GET https://jobmatchga.api.com/v1.1/jobs

Здесь с точки зрения порядка в базовом URL api.com оказывается основным сайтом системы, что неверно.
Поддомен для API делают иначе.


I. GET https://api.jobmatchga.com/public/
v1.1/jobs

Тут всё отлично.
API находится на поддомене основного сайта jobmatchga.com.
Дизайн отличный и почему-то так мало голосов 😃
Пример в Avito



—-
Подсказки:
📚 Как выбирать методы: GET, POST, PUT, PATCH, DELETE
📚 Правила проектирования URL
—-


Запоминайте ошибки и будьте внимательны в будущем. Не попадайтесь! 🤝

#RestApiGA #JobMatchGA
🔥2111❤‍🔥31👍1
💜🤖 Открытый урок по Insomnia, Postman и AI для REST API последний день спец условий 🚀

На любом собеседовании для СА, от junior до senior, есть вопросы по проектированию REST API.

А на уровне Middle+/Senior вас проверяют не “по верхам”, а по всем нюансам проектирования: идемпотентность, безопасность, ошибки, фильтрацию/пагинацию, работу с файлами — то, что понять и запомнить можно только с практикой.

А потом всё это нужно и в работе.

📌 На программе "Дизайн REST API" для СА и БА мы всё это разбираем на практике и даём реальный продуктовый опыт.



🔥 Дизайн REST API
🗓 Старт: 17 февраля 2026


В этом потоке - расширенный формат:
11 онлайн-практик
9 месяцев доступа
Доп. проект в базе знаний
Проверка ДЗ по проекту

🎁 Сегодня последний день:
+ лучшие условия,
+ обучение "Интеграции 4.0 - продвинутый уровень" в подарок.

👉 Узнать подробности и записаться



Ваши результаты за 10 недель:
Соберёте проект для портфолио:
▫️ постановки задач на REST API методы в Confluence,
▫️ корпоративный стандарт по дизайну REST API-методов,
▫️ Postman-документацию по своему и чужим API,
▫️ API-спецификация в OpenAPI (Swagger),
▫️ mock-сервера с рабочим API на заглушках 😍

+ получите доступ к базе шаблонов и примеров ТЗ для аналитика.


--------------------—

🚀 Бесплатный вводный урок

Также приглашаем вас лучше познакомиться с REST API на вводном уроке к программе, и сразу же глубоко погрузиться в практику:

🔥 Postman, Insomnia и AI: погружение в REST API на реальных примерах
🗓 14-17 февраля (сб-вт)

🔗 Зарегистрироваться

--------------------—


Нужна консультация? Пишите @getanalyst или заполняйте анкету предзаписи 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥1🔥1🤔1
GetAnalyst_Задания_REST_API_для_подготовки_к_собеседованию_СА.pdf
113.4 KB
📚🤖 AI-помощник для подготовки к собеседованию по REST API 📚🤖

Вопросы и задачи с собеседований — это всегда отличный способ размяться перед реальным интервью и вспомнить то, что давно не использовали в работе.

Прикрепила к посту два файла:
1. Только вопросы - файл "Задания к собеседованию"
2. Эти же вопросы, но с ответами - файл "Вопросы и ответы"


🤖 Инструкция по подготовке к интервью с помощью AI:

👉 1. Скачайте pdf-файл с ответами из этого поста (второй по порядку).


👉 2. Откройте ChatGPT и войдите в бесплатный аккаунт, используя свою учетную запись Google.
https://chatgpt.com/
Альтернативный инструмент:
https://gemini.google.com/
(больше лимиты на бесплатном тарифе)


👉 3. Откройте новый диалог (New Chat в левом меню).


👉 4.1. Загрузите файл в ChatGPT.
В зоне ввода текста есть иконка "+".
Нажмите на неё и появится иконка скрепки с надписью "Добавить файл" (Add photos & files").

👉 4.2. Вставьте промпт:

Представь, что ты ведущий системный аналитик с опытом более 10 лет в IT. Ты хочешь нанять senior системного аналитика к себе в команду и я пришёл к тебе на техническое собеседование.

Ты строгий и занудный, требуешь четких ответов с примерами.

Используй файл, который я добавил, и на его основе задавай мне по одному случайному вопросу.
После того, как я отвечу, давай оценку моим ответами по 10-бальной шкале по критериям: точность ответа, понимание вопроса. Поясняй каждый балл и предлагай как можно было бы улучшить мой ответ.

Каждый раз, когда я буду писать "следующий вопрос", ты можешь задавать мне следующий вопрос из моего документа или придумывать аналогичные, с подобными задачами.

Чередуй вопросы по теории и практические задания, задачи как на реальных проектах.

Сразу после этого сообщения можешь задать мне первый вопрос.



👉 5. Ваше собеседование началось.
Отвечайте на вопросы.



❗️ Не печатайте текст на теоретические вопросы, а говорите ответы голосом, где возможно!
Используйте иконку "микрофон", чтобы записывать свои ответы и отдавать их на проверку Искусственному Интеллекту.
Получайте обратную связь от ИИ и улучшайтесь 😌


+ В помощь на собеседования:
JSON Editor Online


Сохраняйте и пользуйтесь.
Сейчас или в будущем 🤝


🔥 и 🩷 приветствуются))


#RestApiGA #AI_for_analysts
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥5821❤‍🔥7👍5💯2
🔥 Подвохи в REST API: разбор типовых ошибок🔥🙃

На этой неделе я публиковала задачи по REST API и просила вас проголосовать за правильные ответы.

📌 Если вы их пропустили, то сначала решите задачи здесь, а затем вернитесь к этому посту за разбором.


Типичные ошибки:

👉1) Список вакансий
Разбор тут

👉2) Просмотр вакансии
• Передавали jobId вакансии в query-параметре, хотя корректнее в path - это самая распространенная ошибка ❗️ Query-параметры для фильтров и сортировок списков.
• Добавляли details в URL — это лишнее, если уже есть {jobId} в path-параметрах
• Немногие попались на подвох с доменом api.com (3%)

👉3) Создание вакансии рекрутером
❗️ В URL добавляли create при POST — лишнее (“масло-масляное”). Это самая распространенная ошибка
• В варианте A, где указано recruiter (название каталога api?), желательно перенести название каталога api до версии, хотя и так допустимо
❗️Передавали jobId при создании вакансии — обычно он генерируется на сервере после её создания, поэтому в запросе его быть не должно (вариант I, распространенная ошибка).
• Потерян указатель на каталог API, но это не критично.


👉4) Отклик кандидата на вакансию
❗️В URL добавляли create при POST — лишнее (“масло-масляное”).
• PATCH для частичного редактирования данных, но не для создания отклика (C = 10%).
• В сущностях не рекомендуется указывать глаголы, если это не метод редактирования PATCH (D, H).
• Подставляли в URL id кандидата, хотя его лучше было бы отправить в тело, так как в предложенных вариантах до {candidateId} нет /candidate, чтобы мы в целом имели право его прописывать (F, G). Популярная ошибка ❗️


👉5) Изменение статуса отклика
• "Масло-масляное" с глаголом update/change и методами на изменение PUT/PATCH (C, H, J)
• Путаница с пониманием PUT и PATCH. PUT - полное редактирование, PATCH - частичное редактирование ресурса, когда надо перезаписать одно поле у сущности в БД, а не все.


👉 Подробно все ошибки указала на картинках к посту.


Вопросы?
Пишите в комментариях.


Изучайте разбор и запоминайте ошибки.

Для собеседований такая практика 100% пригодится 🤝

#RestApiGA
14🔥4