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
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
🔎 Что входит в хорошую постановку задачи на REST API-метод? 🔎

1. Общее описание
+ что делает этот метод?
+ для кого он?
+ почему мы его делаем?

2. Алгоритм работы - Use Case
+ основной сценарий
+ обработка ошибок


Требования к реализации:

3. Тип метода и полный URL

4. Query-параметры и их логика

5. Headers и их логика

6. Body (json) - Тело запроса

7. Аутентификация и авторизация запросов

8. Описание успешного ответа:
+ HTTP-статус код
+ Headers
+ Body (json) - тело ответа

9. Список обрабатываемых ошибок:
+ HTTP-статус код
+ Headers
+ Body (json) - тело ответа
Не описали ошибку? Значит её обработка не поддерживается.

Перечисленные выше требования (3-9) часто описывают с примерами запросов и ответов. Это самый лучший способ.



10. Маппинг данных для параметров API с БД
В маппинг включают: path-параметры, query-параметы, json-ы запроа и ответа, headers (если требуется).



+ 11. НФТ
Например, ограничения на кол-во запросов с одного ip или от одного клиента.

+ 12. Логирование и мониторинг
+ что логировать и где
+ при каких условиях, либо всегда
+ как долго хранить логи
+ требования к дашбордам мониторинга

+ 13. Дополнительно
+ Ответственная команда
+ Известные ошибки и проблемы
+ Требования к монетизации
+ Требования к кэшированию
+ Cookies - можно, но не нужно, они не рекомендуются для REST API



📌 Используйте пост как чеклист.
Проверьте, что у вас на работе учитываются все необходимые разделы в постановке задачи.

🧐 Что делают разработчики по тем пунктам, где требования сейчас не описываются, как принимают решения?

Этот чек-лист поможет задать правильные вопросы и избежать «дырок» в описании требований.

А если хочется дополнительных пояснений по наполнению, то можно почитать нашу статью Структура постановки задачи на REST API метод.


Сохраняйте, чтобы не потерять

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
41👍8❤‍🔥7🔥3🤩2👀1
GetAnalyst_Пример_постановки_задачи_на_REST_API_метод_Создать_встречу.pdf
1.1 MB
💻 Пример постановки задачи на REST API метод - выгрузка из Confluence 💻

Теория - хорошо, а практика ещё лучше.

Для нашего проекта MeetsGA подготовила пример постановки задачи на метод:

POST /events - создать мероприятие


Изучайте и используйте для работы.

Описание шаблона можно найти тут, и в предыдущем посте 😌

#RestApiGA #MeetsGA
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤‍🔥96👀1
🔥 [Только 2-5 августа] REST API: от практики в Postman до помощи AI-ассистента 🔥

Нужно получить опыт работы с REST API?
+ Научиться проектировать сложные API-методы с нуля и учитывать все нюансы?
+ Избегать типичных ошибок в дизайне?
+ За секунды генерировать спецификации и шаблоны с помощью AI-ассистента?


Вам сюда 👇

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

🕘 Время на обучение:
4 часа

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


В результате этого бесплатного обучения:

Получите опыт работы с Postman.
Сделаете рабочую Postman-коллекцию для личного портфолио.
Будете знать типичные ошибки при дизайне REST API и как их избежать.
Получите примеры корректных постановок задач на API-методы.
Научитесь использовать ChatGPT на продвинутом уровне для ускорения работы.


Регистрируйтесь и планируйте время на обучение заранее 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
19
🟢🟠 Инструменты для работы с API: полный гайд для СА 🟡🟣

Зачем аналитику знать инструменты для тестирования и документирования API?

👉 Интеграции:
СА необходимо убедиться, что API внешней системы будет работать именно так, как описано в документации (если она есть, а если нет - то составить), чтобы затем предоставить информацию разработчикам.

Тестирование API внешних систем в специализированных инструментах помогает выявить проблемы в работе внешних систем на ранних стадиях разработки, несоответствия документации реальности, а также проверить полноту данных и доступность сервисов в целом.


👉 Backend-команды, которым нужно ставить задачи на API:
Нужно уметь самому с нуля проектировать и документировать API, желательно с использованием специализированных инструментов как Postman и Swagger, а не только в Confluence-подобных системах.



Список инструментов, которые помогают системным аналитикам в тестировании и документировании API:

🟠 Postman
🟡 SoapUI
🟣 Insomnia
🟢 Swagger

Подробности в картинках к посту ☝️

+ 🐶 Bruno - аналог Postman, всё больше завоёвывает сердца аналитиков, его нет в картинках к посту.



👉 Рекомендую поработать со всеми инструментами и выбрать наиболее удобный для себя.

Делюсь практическими гайдами, с которыми вы сможете поработать с инструментами сами, с понятными пошаговыми инструкциями:
▫️ Postman: Практическое руководство с примером тестирования открытого API
▫️ GraphQL — знакомство на практике через Postman [пошаговая инструкция]
▫️ Postman: навык тестирования REST API за вечер
▫️ Swagger - практическое руководство по документированию API



Пользуйтесь! 🤩

#RestApiGA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
35👍4🔥3👏2