-
Ценность и цель. API должны решать конкретную задачу: автоматизировать продажу, ускорить доставку, обеспечить платежный шлюз.
-
Прежде чем писать код, определите, кому нужен интерфейс, какие операции он должен поддерживать и какие метрики покажут успех (скорость ответов, доля ошибок, количество подключенных приложений).
-
Каждая операция API делает что‑то одно и очевидное.
-
Лучше несколько простых методов («создать заказ», «обновить статус») вместо одного всеобъемлющего.
-
Названия ресурсов (endpoints) отражают бизнес‑сущность: /orders, /clients, /products.
-
Для интеграции разных систем нужен общий язык.
-
Создайте каноническую модель данных с определенными сущностями (клиент, договор, товар, позиция заказа) и атрибутами.
-
Каждая система будет преобразовывать свои поля в эту модель и обратно, избегая хаоса переводов. Предсказуемость. API должны вести себя одинаково: одинаковые форматы дат (ISO 8601), суммы всегда с валютой, идентификаторы без смешения регистров, номера страниц — начиная с нуля или единицы, но единообразно. Версионирование.
-
Обновления неизбежны: появляются новые атрибуты, логика меняется.
-
Грамотное проектирование предусматривает версии: v1, v2.
-
Неломающиеся изменения (например, новый необязательный параметр) не требуют новой версии.
-
Ломающие — выходят под новым номером и сосуществуют с прежними, пока все не перейдут. Идемпотентность.
-
Сеть нестабильна, запросы могут повторяться. API должны обеспечивать, что повторный вызов с теми же параметрами не приведет к двойному списанию или созданию дубликата.
-
Используют уникальные идентификаторы операции и журнализацию.
-
Возвращайте код ошибки, краткое описание и рекомендации. Например, 400 Bad Request: field 'email' is missing — и ссылка на документацию.
-
Недопустимы «что‑то пошло не так» без деталей.
-
Безопасность и конфиденциальность. API работают с пользовательскими данными.
-
Необходимо защищать каналы (HTTPS), ограничивать доступ по принципу минимальных прав, шифровать хранимые ключи, маскировать персональные данные в логах, вести аудит доступа и выполнять требования ФЗ‑152 и GDPR. Наблюдаемость. С самого начала думайте о логах, метриках и трассировке. У каждого запроса — уникальный ID, который проходит через все сервисы.
-
Это позволяет быстро локализовать сбой.
-
Метрики включают время ответа, процент ошибок, глубину очередей, количество повторов.