Эпизод 45.

Большинство системных аналитиков уверены, что знают REST API. Но на техническом собеседовании именно в этой задаче бывает больше всего ошибок.
Разбираем реальную задачу с собеседования: проектируем REST API метод для системы технической поддержки — от первого вопроса интервьюеру до обработки ошибок.
Telegram-канал сообщества: https://t.me/getanalysts
Идём по шагам: выбор HTTP-метода, структура URL, query-параметры для фильтров, сортировок и пагинации, заголовки, JSON и коды ошибок.
После основного разбора — 20+ вопросов с подвохом, на которых аналитики чаще всего ошибаются: текстовый поиск, SQL-инъекции, оптимизация производительности, GET vs POST.
Во время записи была допущена маленькая ошибка. Найдёте? 🔍 (ответ тут)
В JSON-ответа не хватает уникального id тикета тех. поддержки. Вместо него можно использовать number, но всё же bets practice иметь системный технический id.

Эпизод полезен всем, кто готовится к техническому собеседованию на позицию системного аналитика и хочет перестать ошибаться там, где ошибаются все.
RuTube
VK
YouTube
Если плеер YouTube не запускается, необходимо включить VPN, либо переключиться на другой плеер (вкладки сверху).
Тайм-коды эпизода:
00:18 | Введение
02:22 | Условие задачи с технического собеседования системного аналитика
03:55 | Какие уточняющие вопросы задать интервьюеру перед проектированием API
06:02 | HTTP API vs REST API: в чём разница
07:09 | Проектирование REST API-метода: HTTP-метод и URL
14:12 | Query-параметры: как проектировать фильтрацию
22:47 | Query-параметры: как проектировать сортировку в REST API
25:49 | Query-параметры: как проектировать пагинацию
26:36 | Headers: какие заголовки нужны в REST API-запросе
31:46 | Ответ REST API: HTTP-статусы, headers, body и JSON
38:23 | Проектирование JSON-ответа с нуля
47:26 | camelCase или snake_case в JSON: что выбрать для REST API
51:20 | Массивы в JSON: как правильно описывать списки объектов
53:15 | Пагинация в REST API: как отразить в URL и JSON-ответе
57:29 | Проектирование ошибок REST API: HTTP 400, HTTP 422 и другие статусы
01:03:59 | Query-параметры на практике: особенности фильтрации и поиска
01:05:40 | Вопросы с подвохом: фильтры и текстовый поиск в REST API
01:08:38 | Вопросы с подвохом: доступ к данным, логирование и дополнительные фильтры
01:12:17 | Вопросы с подвохом: как работает текстовый поиск
01:13:04 | Вопросы с подвохом: пагинация, сортировка, SQL-инъекции и таймауты
01:17:47 | Вопросы с подвохом: оптимизация производительности API
01:19:49 | Почему GET, а не POST для получения данных. Форматы даты и другие спорные вопросы
01:23:35 | Проектирование БД через ИИ-агента: связь БД, JSON и индексов
01:26:47 | Как готовиться к техническому собеседованию системного аналитика
Спроектировать метод поиска обращений в службу технической поддержки.
Представьте, что вы системный аналитик в компании, которая разрабатывает внутреннюю CRM для операторов техподдержки. Т.е. готовый продукт уже есть, пользователи есть, и сейчас ведётся процесс по замене системы тех. поддержки "из коробки" на собственную.
Тимлид просит описать API для поиска по базе обращений.
Контекст:
Что нужно сделать:
Описать REST API метод для поиска обращений по базе.
Макет UI/UX к задаче для понимания потребностей клиента API:

10 элементов URL в REST API: чек-лист с примерами
https://t.me/getanalysts/3273
Документация Avito для разбора структуры URL на практике
https://developers.avito.ru/api-catalog
Headers в API – что это и зачем, подборка стандартных заголовков:
https://t.me/getanalysts/3297
6 способов пагинации в REST API
https://t.me/getanalysts/2850
Список кодов состояния HTTP
ссылка на русскоязычную википедию
Подборка практических руководств Postman для практики с API:
https://t.me/getanalysts/3006
Авторизация в API: что нужно знать системным аналитикам для работы с требованиями и собеседований
https://getanalyst.ru/podcast/api-authorization
Миграция БД, индексы и импортозамещение ПО: как положить прод и поднять обратно
https://getanalyst.ru/podcast/db-migrations
Сервис для генерации примеров UUID для уникальных id:
https://www.uuidgenerator.net/
JSON-валидатор:
https://jsoneditoronline.org/
✔️ Draw io с условиями задачи и схемами
✔️ Подборка материалов для повторения теории по REST API с примерами
Получайте полезные материалы и учитесь новому каждый день в наших социальных сетях.
*Instagram и LinkedIn — запрещенные на территории РФ организации
Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.