Системный анализ
November 10, 2024

PRO шаблон описания REST-методов, который спасет от хаоса в API-документации📋

Каждый системный аналитик, на мой взгляд, рано или поздно сталкивается с задачей формирования или доработки шаблона описания, в частности, rest-метода. В интернете можно найти примеры таких шаблонов, но большинство из них являются только начальным приближением.

Если сейчас внедряете у себя такой шаблон, то рекомендую основывать его на спецификации OpenAPI. И вот почему:

✅ Спецификация Swagger (OpenAPI) стал общепринятым для описания REST API, что делает его выбор логичным и практичным.

✅ Удобство для разработчиков и тестировщиков. Хорошо структурированное описание API в Confluence даёт возможность любому участнику команды, даже без глубоких знаний предметной области, быстро понять назначение и структуру метода.

✅ Возможность парсинга swagger в такой шаблон (об этом расскажу в следующих постах, подписывайтесь, чтобы не пропустить).

✅ Возможность использовать GPT-модели для генерации разных частей описания (об одном из таких примеров писал вот здесь https://t.me/pro_system_analysis/16).

Пример структуры шаблона

Как лучше всего организовать шаблон? 📑

1️⃣ Общая информация о методе

  1. Описание метода – краткое пояснение, что делает этот метод.
  2. URL и HTTP метод – указание на путь и тип запроса (GET, POST, PUT, DELETE и т.д.), иная информация, принятая для фиксирования в компании.

2️⃣ Параметры запроса

Указать в табличном виде для каждого входного параметра:

  1. наименование,
  2. тип параметра запроса (path, query и т.п.),
  3. тип данных (boolean, string, object и т.п.),
  4. ограничения (pattern, MaxIndex, MinLength и т.п.),
  5. обязательность,
  6. возможность принимать значение null
  7. произвольный комментарий.

3️⃣ Параметры ответа

  1. Указать в какой форме возвращается ответ;
  2. Перечислить в табличном виде структуру ответа.

4️⃣ Примеры запроса и ответов

  1. Пример запроса – привести пример реального запроса с параметрами и телом;
  2. Примеры ответов – пример успешного ответа с примером структуры ответа и примеры негативных ответов с кодами 4хх/5хх (опционально).

5️⃣ Описание логики работы метода

  1. порядок авторизации, в результате выполнения которого могут быть возвращены коды ответов 401 и 403,
  2. валидации входных параметров (с учетом ограничений из раздела 2 и иные прочие проверки (например, условные), в результате которых может быть возвращён код ответа 400,
  3. непосредственно саму логику работу метода: обращения к базам данных, выполнение вычислений, вызов методов других сервисов.

6️⃣ Диаграммы

  1. блок-схемы,
  2. sequence-диаграммы
  3. другие принятые в компании графические артефакты.

В результате при обнаружении новых аспектов работы REST-методов, которые укладываются в спецификацию OpenAPI, которые не принимались во внимание на ранних стадиях документирования могут быть легко встроены в такой шаблон, например, учет Content-Type.

А что ты ещё бы добавил в такой шаблон? Какие элементы помогают твоей команде быстрее разобраться в API?

Поделись своим опытом в комментариях. 👇


Всем хорошего 🍁 понедельника и продуктивной недели!

Пойдёмте поработаем 👨🏻‍💻

made in: @pro_system_analysis