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
Прикрепленная к посту картинка-шпаргалка полезна для работы с проектированием 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
Почти каждый из нас пользуется онлайн-календарём:
✅ создаём встречи через веб и мобильные приложения
✅ добавляем участников
✅ получаем ссылки на видеозвонки
✅ проверяем список встреч на день
✅ редактируем или отменяем их
Примеры таких сервисов — 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
❤🔥50❤7🔥7👍3
Мы постоянно работаем над обновлениями базы знаний для СА и БА.
Сайт и Telegram-канал - два главных источника знаний.
Статьи, книги, вебинары и подкасты от GetAnalyst - всё для вас.
В этом посте хочу поделиться обновлениями по сайту:
✅ Добавили базу проектов GetAnalyst
Каждый месяц запускаем разборы проектов с примерами документации и демо реальной работы.
За несколько лет их накопилось много.
Собрали базу знаний по ним.
Будем улучшать и переносить посты по проектам на сайт.
Сейчас материалы по каждому проекту можно читать в этом канале под его хэштегом.
✅ Вопросы для подготовки к собеседованиям - открытая база для СА
Запустили в работу.
Но без вашей помощи не обойтись.
Если вы сейчас проходите собеседования и готовы поделиться своим опытом, то всем сообществом будем очень благодарны!
Как показывает опыт - прогнать себя по случайным вопросам всегда полезно.
✅ Обновили расписание онлайн-занятий для программы "Системный аналитик: с нуля до опыта работы на проекте"
Потоки стартуют раз в год.
В октябре 2025 года планируется последний полноформатный онлайн-поток на 10 месяцев, где я веду 80+% занятий и помогаю войти в профессию с нуля.
✅ Починили проблему с частичной недоступностью сайта
Сделали инфраструктурный хак и теперь всё и везде работает.
Маршрутизация запросов дело хитрое, но мы справились.
P.S. Спасибо, Дима!
Стремлюсь причинять добро, поэтому стараюсь развивать открытую базу знаний для системных аналитиков на все
Пожелания и предложения как всегда приветствуются 🙌
Искренни ваши,
Екатерина Ананьева
и команда GetAnalyst
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39❤23❤🔥4
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
🔥27❤16❤🔥4
Спроектируйте REST API эндпоинты для методов проекта #MeetsGA: тип метода + URL.
Базовый URL:
https://meetsga.com
Пример:
◽️Создать встречу в календаре
POST https://meetsga.com/api/public/v1/events
◽️Сокращенно:
POST .../api/public/v1/events
👉❗️ Сначала решите задания в заметках или на листе бумаги, а потом нажмите на
Задания:
1️⃣ Получить информацию о встрече
2️⃣ Обновить тему и описание встречи
Можно PUT.
3️⃣ Отменить встречу
или
DELETE .../api/public/v1/events/{eventId} - если удаляем запись из календаря и из БД
4️⃣ Добавить участников во встречу
Можно через метод редактирования встречи
PATCH .../api/public/v1/events/{eventId}/
5️⃣ Получить список встреч на определенную дату
6️⃣ Удалить участника встречи
7️⃣ Загрузить файл ко встрече
POST .../api/public/v1/users
9️⃣ Обновить профиль пользователя
Можно и PUT.
1️⃣0️⃣ Добавить комментарий ко встрече
Проверьте себя! Нажимайте на
Сколько верных ответов у вас получилось?
👍 - меньше 6
❤️ - от 6 до 9
🔥 - 10
При любом результате вы молодцы, так как развиваете свои навыки и получаете опыт!
Делитесь в комментариях, если у вас получились иные варианты или есть вопросы при проверке 🤝
#RestApiGA #MeetsGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤42❤🔥15🔥4
Если вы недавно искали вакансии для Системных Аналитиков, то, скорее всего, видели эти требования:
+ Знание REST API / JSON
+ Умение описывать и документировать методы API
+ Понимание, как работают мобильные приложения
+ OpenAPI / Swagger
+ Навык тестирования API через Postman
Это не просто «плюсы». Это обязательные навыки для Middle и Senior аналитиков, которые работают с Backend- или мобильной разработкой, в проектах с интеграциями.
Всё это вы можете освоить работая над проектами в практической программе:
💻 Дизайн REST API
☀️ Сейчас, пока лето, можно учиться в плавном режиме и готовиться к основному онлайн-потоку с ноября.
Что делаем на программе:
+ Проектируем REST API с нуля
+ Учитываем архитектуру, UI и БД
+ Пишем требования и маппинги
+ Тестируем через Postman
+ Осваиваем документацию в OpenAPI / Swagger
+ Учимся работать с mock-серверами и делать методы рабочими даже без навыков программирования!
Проекты с подвохами и сложностями, на которых “набиваем шишки”, учимся писать и структурировать API-документацию, осваиваем ключевые инструменты СА 🛠
👉 В финале вы создаете свой проект API в Postman и Swagger.
Ваши методы реально заработают на заглушках и их можно будет протестировать.
И вы это сделаете даже без навыков программирования! 🤩
Это самая весомая и “программистская” часть вашего профессионального портфолио, которую оценит любой тимлид и CTO.
Оставьте заявку или напишите @getanalyst — подскажем, подойдёт ли вам программа, какие задачи помогаем закрыть и ответим на вопросы 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8❤🔥1
🧶 Из чего состоит URL в REST API: разбираем на практике 🧶
Пример:
🔸 Метод 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
Пример:
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
На картинке к посту — разбор типичных ошибок, которые совершают даже опытные команды:
❌ Все методы 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
JSON - основной формат сообщений, который используется для обмена данными в разработке ПО:
✔️ REST API (запросы и ответы)
✔️ GraphQL (ответы)
✔️ Сообщения для брокеров Kafka / RabbitMQ
✔️ и в других случаях.
Инструменты, которые помогут в работе и на собеседованиях, когда вас спрашивают о JSON:
А всё остальное, включая подробный разбор структуры JSON, типичные ошибки и рекомендации по проектированию, собрала для вас в практическом руководстве, прикрепленном к посту📚
#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36🔥2❤🔥1