TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Аналитик на Балтике | Неверов Станислав

4 Jul 2025, 08:01

Открыть в Telegram Поделиться Пожаловаться

Prev Next
Проектирование данных для API — часть 2: контекст, параметры и здравый смысл 🔍

В предыдущем посте мы говорили, как спроектировать данные для API, чтобы структура была понятной и ориентированной на потребителя. Но на этом история не заканчивается.

➡️Одна и та же концепция (например, «товар») может использоваться:
🔚в поиске (каталог товаров),
🔚при добавлении в каталог,
🔚при получении конкретного товара.
В каждом из этих случаев ответ может выглядеть по-разному.

❌ Ответ ≠ ресурс 1 к 1

➡️ Смотри на схему

➡️ Ресурс «товар» — это вся сущность со всеми полями. Но:
🔚В поиске важны только reference, name, price, supplierName — остальное шум.
🔚При добавлении и получении — наоборот, нужен полный объект.
Проектируя ответ, мы не обязаны возвращать всё. Мы подстраиваем структуру под конкретный сценарий — и тем самым делаем API понятным, лёгким и быстрым.

❌ А что насчёт параметров?

➡️ Параметры — это данные, которые потребитель отправляет в API. И да, их тоже надо проектировать с умом (см. схему):
🔚При добавлении товара не нужно передавать reference или dateAdded — они генерируются на сервере.
🔚Но при обновлении или замене — reference уже обязателен, т.к. это ссылка на конкретный товар.

💡 Ещё пример: объект supplier в параметрах можно сократить до supplierReference, потому что всю остальную информацию сервер может подтянуть сам. Так API становится легче и устойчивее.

✅ Проверка: потребитель точно может это передать?

Вот где всё проверяется на прочность (см. схему):
➡️ Для каждого параметра спроси себя:
🔚Может ли потребитель ввести это сам?
🔚Получает ли он это из другого ответа?
🔚Присутствует ли это в цели API?

➡️ Если нет — либо добавляем цель, либо пересматриваем, нужно ли вообще это поле. Всё, что не может быть передано потребителем — кандидат на удаление из параметров.

💡 И да — параметры запроса, как free-query в поиске, проектируются так же: с прицелом на пользователя. Это просто строка, а не сложный фильтр с 20 ключами. Простота рулит.

➡️ Главное:
🔚Ответы = адаптированные представления концепции.
🔚Параметры = только то, что реально может предоставить потребитель.
🔚API = не сериализация модели, а интерфейс между людьми и системами.

Проектирование — это не только про поля и типы. Это про понимание контекста, вопросы без страха и удаление всего лишнего.

#навыкАналитика #REST #api #чек_лист #проектирование #IT

591 0 7 22
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot