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
🧶 Из чего состоит 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
💡 Headers в API: что это и зачем 💡

Headers – заголовки запроса и ответа в протоколе HTTP.

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

Помогают:
✔️ Определять, как обрабатывать запрос.
✔️ Передавать метаинформацию о данных (системную).
✔️ Настраивать взаимодействие между клиентом и сервером.


Проще всего разобраться с Headers, познакомившись с набором стандартных значений, которые можно нагло копировать в требования к вашим REST API методам 🙂


📌 Request Headers - для запросов

◽️ Authorization
Используется для передачи токенов доступа, ключей API или других данных для авторизации. Используется для проверки доступа к API-методам.
🔗 Подробнее в подкасте
Authorization: Bearer <token>


◽️ Content-Type
Сообщает серверу, в каком формате отправлены данные.
Если сервер не знает в каком формате переданы данные, то он не сможет обработать запрос.
Если его нет в API, то сервер обычно ждёт JSON, если в документации не указано иное.
Content-Type: application/json

Content-Type: application/xml


◽️ Cache-Control
Управляет кэшированием данных на клиенте.
Полезно для работы с экономией трафика.
Cache-Control: no-cache


◽️ Ключи идемпотентности - название придумываете сами
Это уникальный идентификатор для запросов, который помогает избежать дублирования. Например, при повторной отправке платежного запроса сервер проверяет ключ и не создаёт дубль.
Подробнее в подкасте
Idempotency-Key: <unique-key>


◽️ Часовые пояса
Когда система работает в разных регионах, важно учитывать часовые пояса и их можно передавать как обязательные заголовки во всех запросах.
Стандартные названия из моего опыта:
Time-Zone: UTC+3

X-Time-Zone: UTC+3



📌 + помним про Response Headers (заголовки ответов)


Полные подборки стандартных Headers:
🔗 Wikipedia
🔗 MDN


Правильно выбранные Headers помогают удобно передавать все системные параметры для обмена данными, которые не важны для бизнес-логики и алгоритмов работы API-методов.

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
24👍10🔥7
🧑‍💻 Какой HTTP-код вернуть? Шпаргалка для проектирования API-методов 🧑‍💻

В любой интеграции по API важно не только предусмотреть happy path (успешный путь), но и заранее описать, как система должна вести себя при ошибках.


📌 Что нужно сделать при проектировании ответов на API-запросы

0️⃣ Перечислить успешные ответы
+ 200 OK - Успех
+ 201 Created — Создано (новая запись в БД)
+ 202 Accepted — Принято в обработку (запрос принят, но обработка не завершена, часто используется при асинхронных задачах - отчёты, отправка email и др)
+ 204 No Content — Нет содержимого (запрос выполнен успешно, но в ответе нет тела)


1️⃣ Перечислить типовые ошибки и описать реакцию API на них:
+ 401 Unauthorized — Неверный логин/токен
+ 403 Forbidden — Нет прав
+ 429 Too Many Requests — Превышен лимит запросов


2️⃣ Добавить требования к специфичным ошибкам:
+ 400 Bad Request — Ошибка во входных данных
+ 409 Conflict — Создание дубликатов
+ 500 Internal Server Error — Внутренний сбой в работе сервера
+ и другие.
Все HTTP-статусы тут.


3️⃣ Добавить альтернативные сценарии в Use Case для API-метода, которые ведут к описанным в п.1 и 2 ошибкам.
2А. Клиент передал номер телефона в неверном формате.
→ Вернуть ошибку HTTP-400 и сообщение "Неверный формат номера телефона, ожидается 10 цифр"



4️⃣ Сделать JSON-структуру ответов об ошибках единообразной
{
"errorCode": "INVALID_PHONE",
"message": "Текст ошибки"
}



5️⃣ В OpenAPI спецификации (Swagger) добавить секции:
responses:
'400':
description: Неверные параметры запроса
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'



6️⃣ Отразить примеры ошибок в документации Confluence и всегда иметь соответствующий раздел в шаблоне задачи.



Помните, что ошибки тоже важная часть программного интерфейса - API!

Если все ошибки задокументированны чётко и понятно, пользователи (и разработчики) будут вам благодарны, и вы сможете повысить UX приложений 🙌


🔗 Cтатья про документирование ошибок в REST API


#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
25👍1💯1
Завершаем предзапись на REST API | с 5 августа

Актуально добавить знания и опыт по REST API в резюме и портфолио? Тогда рекомендую посмотреть нашу практическую программу:

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

☀️ До ноября (когда будет основной онлайн-поток) учитесь самостоятельно, в комфортном темпе + получаете доп. практику, которая будет доступна только для вашей группы

Поток с новым форматом:
⚡️ +3 месяца доступа к материалам и обратной связи (9 мес)
⚡️ +3 онлайн-встречи, где все с доступом к микрофону и практикуются
⚡️ +1 проект

Результат - 2 проекта в портфолио:

Постановки задач и документация в Confluence
Postman-коллекции и интерактивная API-документация
Swagger-документация
Работающие на загрушках ваши API-методы (mock api)

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


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


Есть вопросы? Пишите @getanalyst или заполняйте анкету предзаписи на сайте. Мы свяжемся с вами, поможем оценить текущие навыки и ответим на вопросы! 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
GetAnalyst_Ответы_на_задания_по_REST_API_для_подготовки_к_собеседованию.pdf
551.9 KB
📚🤖 Вопросы по REST API к собеседованию на СА + AI-помощник для подготовки к собеседованиям 📚🤖

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

Прикрепила к посту два файла:

1. Только вопросы
2. Эти же вопросы, но с краткими ответами



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

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

2. Откройте ChatGPT и войдите в бесплатный аккаунт, используя свою учетную запись Google.
https://chatgpt.com/

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

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

4.2. Вставьте промпт:
Представь, что ты системный аналитик с опытом более 10 лет в IT. Ты хочешь нанять senior системного аналитика к себе в команду и я пришёл к тебе на техническое собеседование.
Ты строгий и занудный, требуешь четких ответов с примерами.
Используй файл, который я добавил, и на его основе задавай мне по одному случайному вопросу.
После того, как я отвечу, давай оценку моим ответами по 10-бальной шкале по критериям: точность ответа, понимание вопроса. Поясняй каждый балл и предлагай как можно было бы улучшить мой ответ.
Каждый раз, когда я буду писать "следующий вопрос", ты можешь задавать мне следующий вопрос из моего документа или придумывать аналогичные, с подобными задачами.
Сразу после этого сообщения можешь задать мне первый вопрос.


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


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


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


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


#RestApiGA #AI_for_SA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6824❤‍🔥4👍3
🗓❤️‍🔥 [Открытый урок] От практики REST API в Postman до внедрения личного AI-ассистента ❤️‍🔥🗓

REST API — стандарт в большинстве IT-проектов. Поэтому глубокое понимание его работы и принципов проектирования уже давно спрашивают с аналитиков.

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


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

🐞 Как избежать ошибок в REST API:
🤖 от практики в Postman до помощи AI-ассистента
🗓 Доступ 2 - 5 августа [сб-вт]

👉 Подробности и регистрация

План:
1. Теория по REST API на практике в Postman
2. 5 ошибок проектирования REST API
3. Шаблон постановки задачи на API
4. AI-инструменты для работы


Этот открытый урок даст вам и теоретические знания, и практические инструменты 🛠

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

Занятие проводится как вводный урок к практической программе Дизайн REST API.


Регистрируйтесь, чтобы не пропустить! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
19❤‍🔥6🔥2
📚 Что почитать и посмотреть по REST API: подборка материалов от GetAnalyst 📚

У нас много новых участников в сообществе 🙌 И…!
Вместо того, чтобы рассказывать о себе, сделала для вас самую полную и актуальную подборку полезных материалов по проектированию REST API.

Так вы лучше узнаете меня - Екатерину Ананьеву - не на словах, а в деле 🙂

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

(С) Структура метода REST API

(В) Postman: навык тестирования REST API за вечер

(С) Методы HTTP (REST) и их назначение

(C) Как строить URL в REST API

(C) Всё про JSON в одной картинке

(С) Мини-книга про JSON

(В) Связь БД и дизайна REST API

(С) Headers

(С) 6 способов пагинации

(С) Проектирование ошибок в REST API

(В) Проект “Система для автосервиса” - видео-обучение:
1. Сбор бизнес-требований, погружение в контекст
2. Определение сущностей и проектирование логической модели БД
3. REST API с нуля: дизайн методов для работы менеджера с заявками автосервиса

(С) 6 ключевых принципов REST API - теория, но спрашивают понимание

(C) Postman: Практическое руководство с примером тестирования открытого API DaData

(С) Postman: Практическое руководство с примером - API DaData - ещё один сервис

(C) Postman: Практическое руководство с примером - платежная система ВТБ

(П) Вопросы и ответы по REST API: собеседование на СА

(В) Собеседование на СА: разбор задачи на асинхронные запросы в REST API

(C) Шаблон постановки задачи на REST API метод

(П) gRPС vs REST - что выбрать для проекта

(C) Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)

(С) Исследование реальных REST API на соответствие REST: Trello, Todoist

Также вы можете найти у нас мини-обучения и продвинутую практическую программу Дизайн REST API для опытных аналитиков.

(В) Видео
(П) Подкасты
(С) Статьи



Делитесь с коллегами, особенно с джунами и мидлами СА!

Сохранили? ❤️

#RestApiGA
37🔥10👏1👀1