GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
19.6K subscribers
2.1K photos
75 videos
207 files
1.19K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart

РКН №5013005196
Download Telegram
👩‍💻 HTTP-методы в REST API: это спросят на собеседовании 👩‍💻

GET, POST, PUT, PATCH и DELETE - виды методов, часть протокола HTTP.
Нужны, чтобы стандартизировать взаимодействие между клиентом и сервером.

Каждый метод выполняет определённое действие и соответствует логике CRUD-модели (Create, Read, Update, Delete).


🩷 GET
Чтение данных.

Не поддерживает тело - Body (JSON).
Идемпотентен.


💚 POST
Создание объектов в БД.
Не идемпотентен.

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

* Почему в некоторых REST API все POST? Потому что они не REST API, а HTTP API.


💙 PUT
Полная замена и/или создание ресурса.
В теле JSON требует полный объект.
Идемпотентен.

* Часто используют только для изменения.


💜 PATCH
Частичное обновление ресурса.
В теле JSON передаются только те поля объекта, которые нужно изменить.
Не идемпотентен.


❤️ DELETE
Удаление ресурса.
Не поддерживает тело - Body (JSON).
Идемпотентен.


💛 А что по поводу TRACE, HEAD, OPTIONS, CONNECT?
Могут быть полностью заменены GET-ом.
Очень маленький шанс встретить или применить на практике.


Правильное использование HTTP-методов в REST API упрощает взаимодействие с вашей системой, так как делает API предсказуемым и удобным для разработчиков.


P.S. Ссылка на
подкаст про идемпотентность и коммутативность в API

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2716❤‍🔥4
💡 Задания для практики: REST API эндпоинты 💡

Спроектируйте REST API эндпоинты для методов проекта #MeetsGA: тип метода + URL.

Базовый URL:
https://meetsga.com

Пример:
◽️Создать встречу в календаре
POST
https://meetsga.com/api/public/v1/events
◽️Сокращенно:
POST
.../api/public/v1/events


👉❗️ Сначала решите задания в заметках или на листе бумаги, а потом нажмите на , чтобы сверить ответы.


Задания:

1️⃣
Получить информацию о встрече
GET .../api/public/v1/events/{eventId}

2️⃣ Обновить тему и описание встречи
PATCH .../api/public/v1/events/{eventId}
Можно PUT.


3️⃣ Отменить встречу
PATCH .../api/public/v1/events/{eventId}/cancel
или
DELETE .../api/public/v1/events/{eventId} - если удаляем запись из календаря и из БД


4️⃣ Добавить участников во встречу
POST .../api/public/v1/events/{eventId}/participants
Можно через метод редактирования встречи
PATCH .../api/public/v1/events/{eventId}/


5️⃣ Получить список встреч на определенную дату
GET .../api/public/v1/events?date=2025-07-13

6️⃣ Удалить участника встречи
DELETE .../api/public/v1/events/{eventId}/participants/{userId}

7️⃣ Загрузить файл ко встрече
POST .../api/public/v1/events/{eventId}/attachments

8️⃣ Зарегистрировать нового пользователя
POST .../api/public/v1/users


9️⃣ Обновить профиль пользователя
PATCH .../api/public/v1/users/{userId}
Можно и PUT.


1️⃣0️⃣ Добавить комментарий ко встрече
POST .../api/public/v1/events/{eventId}/comments


Проверьте себя! Нажимайте на .


Сколько верных ответов у вас получилось?
👍 - меньше 6
❤️ - от 6 до 9
🔥 - 10
При любом результате вы молодцы, так как развиваете свои навыки и получаете опыт!

Делитесь в комментариях, если у вас получились иные варианты или есть вопросы при проверке 🤝

#RestApiGA #MeetsGA
Please open Telegram to view this post
VIEW IN TELEGRAM
42❤‍🔥15🔥4
Открыта предзапись на практическую программу REST API

Если вы недавно искали вакансии для Системных Аналитиков, то, скорее всего, видели эти требования:

+ Знание REST API / JSON
+ Умение описывать и документировать методы API
+ Понимание, как работают мобильные приложения
+ OpenAPI / Swagger
+ Навык тестирования API через Postman


Это не просто «плюсы». Это обязательные навыки для Middle и Senior аналитиков, которые работают с Backend- или мобильной разработкой, в проектах с интеграциями.



Всё это вы можете освоить работая над проектами в практической программе:

💻 Дизайн REST API
🗓 Старт 5 августа 2025

⚡️ Поток с новым форматом:
⚡️ +3 месяца месяца доступа к материалам и обратной связи
⚡️ +3 дополнительных онлайн-встречи
⚡️ +1 дополнительный проект

☀️ Сейчас, пока лето, можно учиться в плавном режиме и готовиться к основному онлайн-потоку с ноября.

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


Что делаем на программе:
+ Проектируем REST API с нуля
+ Учитываем архитектуру, UI и БД
+ Пишем требования и маппинги
+ Тестируем через Postman
+ Осваиваем документацию в OpenAPI / Swagger
+ Учимся работать с mock-серверами и делать методы рабочими даже без навыков программирования!

Проекты с подвохами и сложностями, на которых “набиваем шишки”, учимся писать и структурировать API-документацию, осваиваем ключевые инструменты СА 🛠




👉 В финале вы создаете свой проект API в Postman и Swagger.
Ваши методы реально заработают на заглушках и их можно будет протестировать.
И вы это сделаете даже без навыков программирования!
🤩

Это самая весомая и “программистская” часть вашего профессионального портфолио, которую оценит любой тимлид и CTO.


🗓 До 25 июля
🎁 Запись на специальных условиях с дополнительным обучением по БД в подарок, эти знания понадобятся в ходе работы на проекте.


Оставьте заявку или напишите @getanalyst — подскажем, подойдёт ли вам программа, какие задачи помогаем закрыть и ответим на вопросы 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
8❤‍🔥1
🧶 Из чего состоит URL в REST API: разбираем на практике 🧶

Пример:
GET
https://meetsga.com/api/public/v1/events/{evetnId}


🔸 Метод HTTP
GET, POST, PUT, PATCH, DELETE
Не относится к URL, но связан с ним.
Подробнее тут.

🔸 Протокол
Для REST API всегда HTTP / HTTPs.

🔸 Доменное имя
Основной адрес, по которому можно обращаться к серверу с API-приложением.

🔸 Путь (Path)
Включает в себя один или несколько сегментов, разделённых слешами (/):

▫️api - указатель на каталог API сервера, может быть в доменном имени.
▫️имя API - указывает на конкретный интерфейс API, предназначенный для разных пользователей системы, либо для разных микросервисов.
▫️v1
- версия API, важна для поддержки совместимости с предыдущими версиями.

▫️Эндпонит
▫️▫️events - это ресурс, к которому осуществляется доступ. В данном случае “встреча”. Может быть в единственном числе (event).
▫️▫️{eventId} - это параметр в пути URL (path-параметр), указывающий на конкретный рецепт по его id в БД системы. Фигурные скобки {} обозначают переменную часть URL, значение которой должно быть предоставлено клиентом (например, идентификатор 232324).
▫️▫️ иерархия с вложенными сущностями / действия над объектами.



🔸 Query-параметры (Query-parameters)
Дополнительные параметры запроса после ?, необязательны.
Если их несколько, то перечисление через символ &.
Обычно используются для фильтров, сортировок и пагинации при получении списков методом GET, но могут быть и в других методах.

В примере:
GET …/events?offset=0&limit=10&date=2025-07-07&organizerId=123

👉 ?offset=0&limit=10 - запрос результатов с 0-го, ограниченный 10-ю на страницу. Это два отдельных query-параметра - элементы пагинации (постраничного получения данных).
👉 date и organizerId - фильтры по дате и id создателя встречи.



Больше примеров в картинках к посту 📄



Благодаря такой структуре разработчикам и другим пользователям API всегда понятно, каким ресурсом (сущностью) управляет REST API метод 🙌

#RestApiGA #MeetsGA
29🔥11👍2👌2❤‍🔥1
GetAnalyst_REST_API_4_ошибки_при_проектировании.png
443.1 KB
🚨 4 частые ошибки при выборе HTTP-методов в REST API (и как их избежать) 🚨

На картинке к посту — разбор типичных ошибок, которые совершают даже опытные команды:

Все методы POST - это уже не REST
"Масло-масляное" в эндпоинтах(POST /createUser)
Путаница между PUT и PATCH
DELETE там, где нужно просто сменить статус через PATCH

+ способы их исправления.

Сохраняйте шпаргалку для работы и собеседований 🤝

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥10❤‍🔥1👏1🦄1
Всё_про_JSON_практическое_руководство_GetAnalyst.png
1 MB
🙌 Всё про JSON в одной картинке 🙌

JSON - основной формат сообщений, который используется для обмена данными в разработке ПО:

✔️ REST API (запросы и ответы)
✔️ GraphQL (ответы)
✔️ Сообщения для брокеров Kafka / RabbitMQ
✔️ и в других случаях.


Инструменты, которые помогут в работе и на собеседованиях, когда вас спрашивают о JSON:

🔗 jsoneditoronline
🔗 postman
🔗 chatgpt / deepseek / gemini и другие нейросети


А всё остальное, включая подробный разбор структуры JSON, типичные ошибки и рекомендации по проектированию, собрала для вас в практическом руководстве, прикрепленном к посту📚

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
36🔥2❤‍🔥1
☀️ Летняя неделя знаний от GetAnalyst: скидка 25% на все материалы для самостоятельного обучения ☀️

Если вы всерьёз решили расти в системном анализе — начните с практики 😉

До 24 июля действует скидка 25% на все материалы для самостоятельного обучения:
+ реальные кейсы
+ структурные подходы к анализу требований
+ чеклисты, инструменты, шаблоны,
+ подготовка к собеседованиям и переосмысление в работе с текущими задачами

🎁 Промокод: LETO2025
👉 Смотреть доступные материалы

Темы:
▫️ Интеграции
▫️ REST API
▫️ Архитектура
▫️ БД и SQL, ER-диаграммы
▫️ Резюме и собеседования
▫️ Анализ требований
▫️ AI

Это не теория ради теории — это практическая база, которая формирует мышление системного аналитика и помогает действовать увереннее в рабочих проектах.

Формат для тех, кто предпочитает учиться самостоятельно 🙌
🔥202
🌵Чистая архитектура — ключевые принципы и зачем она нужна 🌵

Монолиты, микросервисы, и… чистая архитектура. Как они связаны?

В этом выпуске объясняем простыми словами, как работает чистая архитектура, зачем она нужна и какие принципы лежат в её основе.

🔗 Сайт эпизода


Эпизод доступен в:
Apple Podcast
Яндекс.Музыка
Telegram
Castbox
Звук
Spotify
RuTube
YouTube
VK Video


Сообщество GetAnalyst — ваш навигатор в мире архитектуры и проектирования систем! 🗺
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍82❤‍🔥1🤩1
Иногда просто не хватает вдохновения, чтобы сделать очередной шаг вперёд 🤍

Спасибо каждому из вас за него.


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

Особенно это важно для джунов, которые работают больше всех, и стараются как за троих))
И для тех, кто только-только вышел к вам в компанию и действительно старается как можно скорее начать приносить пользу.

Обратная связь… кажется, что мелочь, но на самом деле значит очень много 🪄
48❤‍🔥8🔥4👍3
[GetAnalyst] REST API - Пагинация.png
577.6 KB
🎯 6 способов пагинации в REST API 🎯

Когда мы получаем списки через API, то получать весь миллион записей сразу - плохая идея. Лучше получать по частям — порциями.

Пагинация — отвечает за порционное получение данных в REST API.

Помогает:
✔️ не перегружать как сервер, так и клиента API;
✔️ ускорить отклик на запрос;
✔️ пользователю не надо ждать данных вечность.


👇 6 способов пагинации на примере получения списка пользователей:

🔹 Offset
И
спользуются параметры смещения (offset) и ограничения (limit) для определения начальной точки и количества возвращаемых записей.
GET /users?offset=0&limit=3

Простая в реализации
Подходит, когда данных немного
Неэффективна при больших offset: система перебирает все записи, чтобы дойти до нужных


🔹 Page
И
спользуются номер и размер каждой страницы для переключения между ними.
GET /users?page=2&size=10

Привычно для пользователей (страницы)
Подходит, когда пользователь реально листает страницы
Проблемы те же, что у offset


🔹 Cursor
И
спользуется курсор (id записей в БД) для обозначения позиции в наборе данных.
GET /users?cursor=123

Быстрая и надёжная при больших объёмах данных.
Часто используют в соцсетях, чатах и платежных системах из-за постоянного потока новых данных.


🔹 Keyset
И
спользуется ключ для фильтрации набора данных. Часто это первичный ключ или другой индексированный столбец.
GET /users?afterId=123&limit=3

Быстрая при больших данных
Подходит для бесконечной прокрутки (infinite scroll)
Требует уникального и индексированного поля (обычно ID)


🔹 Time
И
спользуются временные метки или дата для разбиения записей на страницы.
GET /users?startTime=...&endTime=...

Идеальна для систем, где данные привязаны ко времени: логи, события, аналитика


🔹 Гибридная пагинация
Этот метод объединяет несколько методов пагинации, чтобы максимально использовать их сильные стороны.
Поддерживается сразу несколько способов
из перечисленных выше

Чуть сложнее реализовать
Может путать клиентов API


#RestApiGA #MeetsGA
🔥228👍7❤‍🔥1
Media is too big
VIEW IN TELEGRAM
Это точно спросят на собеседовании про REST API

Смотреть до конца и искать что не так 😉

Жду ваши комментарии ✍️

#RestApiGA
25🔥9😁6❤‍🔥3🤯1
☀️ Скидка 25% на все материалы до четверга ☀️

В GetAnalyst летняя неделя знаний! 🎉🎓

Только до 24 июля (чт) 23:59 Мск действует специальное предложение на все материалы для самостоятельного обучения.

🎁 Скидка 25%
👉 Промокод: LETO2025
🔗 Смотреть доступные материалы

Внутри:
+ реальные кейсы
+ структурные подходы к анализу требований
+ чеклисты, инструменты, шаблоны,
+ подготовка к собеседованиям и переосмысление в работе с текущими задачами

Подойдёт, если вы:
+ готовитесь к собеседованиям
+ хотите разобраться в интеграциях, REST API и архитектуре
+ предпочитаете учиться в удобное время, без привязки к расписанию


В пятницу материалы уже будут по полной цене.

Успевайте, чтобы забрать всё самое полезное для роста — по выгодной цене и в удобном формате 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3
MeetsGA_JSON_ответа_на_получение_события_GetAnalyst.json
1.6 KB
🧩 Как связаны JSON, UI и БД? С примером для #MeetsGA 🧩

Когда мы проектируем JSON для API запросов или ответов, важно понимать, что
он не берётся «с потолка». У него всегда есть два ориентира 👇


1️⃣ База данных (БД) — источник данных

👉 Показывает, какие параметры физически хранятся в системе

👉 У каждого JSON-объекта есть ключевая таблица (основной объект) и связанные таблицы (доп. инфо).
Часто именно связанные таблицы в БД подсказывают структуру JSON:
• один-к-одному → вложенный объект {}
• один-ко-многим → массив объектов []

👉 Названия полей в БД помогают сделать названия в JSON, но не обязательно совпадают.

👉 Не все поля из БД попадают в JSON.

👉 А иногда наоборот — в JSON нужны поля, которых ещё нет в БД. Это повод доработать модель данных.



2️⃣ Клиент API — интерфейс (UI) или другая система

👉 Подсказывает, какие параметры надо включить в JSON.

👉 Именно от потребностей клиента в первую очередь зависит, что будет в JSON.
Если вы работаете над API для приложения с UI — смотрите на макет и проектируйте JSON от потребностей UI.
Если работаете над API для внешней интеграции — смотрите на требования разработчиков внешней системы.


👉 Клиенту обычно нужны от JSON как бизнес-данные, так и технические параметры (например, id, ссылки, и др)

👉 Форматы данных в JSON могут отличаться от того, как они представлены на UI (пример: дата и время)

👉 Не все поля JSON отображаются на UI. Главное, чтобы клиент получил всё, что ему нужно.


📌 Итого: JSON проектируется не от БД и не от UI, а между ними.
Мы соединяем:
• то, что можем взять из БД
• с тем, что нужно отдать клиенту
и формируем структуру, понятную и полезную для клиента API.


------------

📸 На картинке к посту — пример JSON-ответа для метода:
GET /events/{eventId} - метод получения данных о событии в календаре

Разберите его по частям:
• какие поля есть в JSON и как они связаны с UI?
• что есть в JSON по сравнению с БД, а чего нет?

🌐 Полезные по проекту:
БД MeetsGA
Дизайн в Figma для MeetsGA

Запоминайте логику 🤝

------------


#RestApiGA
🔥2313