Где находится описание поддерживаемых API в чистой архитектуре

«Где находится описание поддерживаемых API в чистой архитектуре» — вопрос из категории Архитектура, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В чистой архитектуре (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.