Содержимое
Postman, кроме того, что производит инструмент для тестирования API, ещё собирает лучшие практики проектирования. Для этого у них есть отдельная команда Postman Open Technologies, которая также собирает информацию о стандартах, отраслевых форматах и спецификациях, открытых API. Каталог практик и паттернов оформлен как рабочее пространство Postman: https://www.postman.com/postman/workspace/postman-open-technologies-openapi-governance-templates/overview (открывается прямо в Postman!) Смысл каталога в том, чтобы не придумывать каждый раз "как мы будем возвращать сумму платежа" или "как будем делать пагинацию", а брать готовое решение. На текущий момент там описаны следующие паттерны: 🔸 Форматы данных: 🔹Коды стран (ISO 3166) 🔹Коды валют (ISO 4217) 🔹Дата, время и временные промежутки (ISO 8601) 🔹Числа с десятичными дробями 🔹Кастомные заголовки HTTP 🔹Расширенное описание ошибки (RFC 9457 - кстати, очень хороший формат для передачи смысла ошибки HTTP) 🔸Управление кэшированием: 🔹Параметр Cache-control 🔹Параметр Etag 🔹Параметр Expires 🔸Фильтрация: 🔹Параметры поискового запроса 🔹Точное соответствие 🔹Диапазон значений поля 🔹Выбор полей для ответа 🔸Пагинация: 🔹Заголовки page and per_page (rfc 5988) 🔹Курсор / NextRecordKey 🔹Параметры Limit и Offset 🔸Сортировка: 🔹По одному полю - параметры sort_by, sort_order 🔹По нескольким полям 🔸Версионирование: 🔹На уровне URL API 🔹На уровне отдельного ресурса 🔹Через заголовок Accept-Version 🔹Через заголовок Accept 🔸Информация: 🔹Контакты разработчиков 🔹Лицензия 🔹Условия использования 🔹Заголовок Sunset (предупреждение, что ресурс станет недоступным в определенное время) Набор паттернов интересный, я, например, про RFC 9457, версионирование на уровне ресурсов и Sunset header раньше не слышал.