group-telegram.com/BalticAnalyst/595
Last Update:
API. Проектирование параметров: от концепции
Когда мы описываем ресурс, хочется просто «вынести наружу» все его поля. Но API‑дизайн требует дисциплины: параметр должен передавать только то, что реально нужно клиенту — и только то, что он способен прислать. Смотрим, как это работает на примере создания‑обновления‑замены товара.
Концепция товара хранит всё: reference, name, price, dateAdded, supplier
Запрос на добавление:
Запрос на обновление/замену:
Итог: одна и та же сущность представлена по‑разному в разных контекстах.
Параметр должен предоставлять необходимые данные, но не более того.
вопрос → действие
Так мы гарантируем, что клиент всегда способен составить запрос без магии и угадывания.
Это строка фильтра для поиска: имя, часть описания или ссылка.
Тот же принцип: удобство клиента > идеальная модель. Главное — понятно задокументировать, как именно сервер трактует ввод.
При переходе от концепции к параметрам нередко всплывают пробелы: А как клиент узнает supplierReference?.
Это нормально:
Так слой за слоем API становится стройнее и дружелюбнее.
Оптимальный параметр — это не короткая копия ответа, а точно выверенный набор данных, который клиент способен предоставить здесь и сейчас. Режем лишнее, генерируем серверное, даём ссылки вместо вложенностей и всегда задаём вопрос: Откуда у клиента эти данные?
PS
Когда вы решите использовать определенный тип API, важно знать, что иногда можно столкнуться с ограничениями. Вы можете изо всех сил пытаться найти представление цели, которая соответствует выбранной модели API, или получить представление, соответствующее модели, но оно будет не таким удобным для пользователя, как вы ожидали. Иногда идеального представления не существует, поэтому вам, как проектировщику API, придется искать компромисс.
#навыкАналитика #REST #api #чек_лист #проектирование #IT