Ответ
В чистой архитектуре (Clean Architecture) описание API обычно находится в слое интерфейсов (interface layer). Это внешний слой, который отвечает за взаимодействие с внешним миром (HTTP, gRPC, CLI и т.д.).
Пример структуры:
├── cmd/ # точка входа (main)
├── internal/
│ ├── domain/ # бизнес-логика (entities, use cases)
│ ├── app/ # прикладная логика
│ └── interfaces/
│ ├── http/ # REST/gRPC хендлеры
│ └── grpc/
API описывается в виде:
- HTTP-роутеров (например,
router.goвinterfaces/http). - gRPC proto-файлов (если используется).
- Swagger/OpenAPI спецификаций (часто рядом с HTTP-хендлерами).
Важно: API не должен содержать бизнес-логику, а только преобразовывать внешние запросы в вызовы use case.