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
👩‍💻 6 принципов REST API про которые спрашивают на собеседованиях 👩‍💻

REST API — архитектурный стиль для создания веб-сервисов, основанный на протоколе HTTP.


REST API основан на протоколе HTTP:

э
то означает, что все принципы работы HTTP методов, их структура запросов и ответов, будут также применимы и для REST API.

👉 Подробнее про работу HTTP-протокола и его связь с REST API разбирали в этой статье.

Пример:
+ в HTTP есть виды методов: GET, POST, PUT, PATCH и т.д.
+ в REST API методы абсолютно те же.


Архитектурный стиль REST добавляет к HTTP дополнительные правила и принципы, по которым должен происходить обмен данными👇


Главные принципы REST:
1. Строгое разделение клиента и сервера
2. Единый интерфейс
3. Без сохранения состояния (Stateless)
4. Многоуровневая система
5. Кэширование
6. Выполнение кода по запросу

В картинках к посту просто и с примерами разобрала эти принципы.


Это не самая ценная в работе информация, но перечень этих принципов и их понимание могут спрашивать на собеседованиях 👌

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
25👍9🔥4🍾2
🧑‍💻 Всё про структуру [HTTP] REST API методов в одной картинке 🧑‍💻

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

Задача актуальна для Senior системных аналитиков, которые работают с Backend-командами, мобильными приложениями, микросервисами и в других проектах.



Чтобы вы наглядно могли сопоставить структуру на картинке с реальным REST API, подготовили для вас:

👉 Документ с анализом API-метода от Т-Банка: документация + Postman



Практика: проверьте себя! 🧠

Предлагаю вам самостоятельно изучить примеры открытой API-документации для интеграций:

ZOOM API - создание видео-конференций
ТБанк - Зарплатный проект
API - Умный дом от Яндекс

Это отличная практика по закреплению знаний по структуре методов REST API.
Сможете найти все описанные на картинке параметры в этой документации?

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥9
🗓 Новый проект на REST API: онлайн-календарь #MeetsGA 🗓

Почти каждый из нас пользуется онлайн-календарём:

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

Примеры таких сервисов — Google Calendar, Zoom, Outlook.



В этом месяце мы будем разрабатывать #MeetsGA — своё собственное приложение календаря встреч.
А точнее его "подкапотную" часть - REST API методы для управления встречами.


👉 План разработки

1. Проектирование:

+ endpoint-ы и методы
+ JSON-структуры запросов и ответов
+ алгоритмы работы
+ сценарии и предусловия
+ обработка ошибок

2. Документация
+ постановка задачи на REST API метод в Confluence
+ схема БД для хранения встреч и участников
+ маппинг данных: JSON - БД

3. Инструменты
Перенесём созданную документацию по API-методам в Postman и Swagger (OpenAPI).



👉 Для чего всё это?
Чтобы получить готовый API, который обеспечит работу фронтенда: веб- и мобильных приложений MeetsGA.

В конце сверимся с популярными сервисами.



🎯 Зачем следить за этим проектом?
Если вы:
🔹 работаете аналитиком и хотите прокачать навык проектирования REST API
🔹 планируете проект по расписаниям, бронированиям, встречам или событиям
🔹 хотите научиться оформлять требования к API



👉 Хотите стать частью проекта и получать новый опыт для работы и собеседований?
Следите за тегом #MeetsGA.
Подписывайтесь на канал.
И оставайтесь с нами!

Это отличный проект, чтобы научиться работать с REST API с нуля до продакшн.

Добро пожаловать в команду! 🤝


#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥507🔥7👍3
🆕 Обновления на сайте GetAnalyst.ru 🆕

Мы постоянно работаем над обновлениями базы знаний для СА и БА.

Сайт и Telegram-канал - два главных источника знаний.

Статьи, книги, вебинары и подкасты от GetAnalyst - всё для вас.


В этом посте хочу поделиться обновлениями по сайту:


Добавили базу проектов GetAnalyst
Каждый месяц запускаем разборы проектов с примерами документации и демо реальной работы.
За несколько лет их накопилось много.
Собрали базу знаний по ним.
Будем улучшать и переносить посты по проектам на сайт.
Сейчас материалы по каждому проекту можно читать в этом канале под его хэштегом.
🔗 База проектов


Вопросы для подготовки к собеседованиям - открытая база для СА
Запустили в работу.
Но без вашей помощи не обойтись.
Если вы сейчас проходите собеседования и готовы поделиться своим опытом, то всем сообществом будем очень благодарны!
Как показывает опыт - прогнать себя по случайным вопросам всегда полезно.
🔗 База вопросов с собеседований на СА


Обновили расписание онлайн-занятий для программы "Системный аналитик: с нуля до опыта работы на проекте"
Потоки стартуют раз в год.
В октябре 2025 года планируется последний полноформатный онлайн-поток на 10 месяцев, где я веду 80+% занятий и помогаю войти в профессию с нуля.


Починили проблему с частичной недоступностью сайта
Сделали инфраструктурный хак и теперь всё и везде работает.
Маршрутизация запросов дело хитрое, но мы справились.
P.S. Спасибо, Дима!



Стремлюсь причинять добро, поэтому стараюсь развивать открытую базу знаний для системных аналитиков на все 💯00%.

Пожелания и предложения как всегда приветствуются 🙌


Искренни ваши,
Екатерина Ананьева
и команда GetAnalyst
🪄
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3923❤‍🔥4
👩‍💻 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